Title: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: chakatphon on March 27, 2013, 03:24:04 PM คือเซนเซอร์ของผมoutputเป็นสัญญาณสแควพัลเปลี่ยนเปลงสัญญาณสั้นยาว คือผมจะจับเวลาขอบขาขึ้นและขอบขาลงของสัญญาณพัลแล้วให้picแบ่งสัญญาณออกเป็น3ช่วง
1 ต้องใช้ขาใดเพิ่อรับสัญญาณพัลจากเซนเซอร์เข้าpic 2 วิธีเขียนเขียนอย่างไร ขอขอบคุณล่วงหน้านะคับ Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: gundam on March 27, 2013, 03:59:07 PM การวัดคาบเวลาคุณต้องมีรายละเอียดด้วยว่าขนาดของสัญญาณอยู่ในช่วงไหน
เช่น 10us-100us คุณถึงจะออกแบบการวัดได้ หากการวัดต้องการเปรียบเทียบว่ากว้างกว่านี้เป็น 1 น้อยกว่าเป็น 0 ก็ใช้วินี้ก็วนลูบนับเอาก็ได้ครับ หากต้องการวัดเป็นค่าเวลาก็ใช้ Timer จับเวลา ตัวอย่างการวัดด้วย timer http://www.thaimicrotron.com/CCS-628/Timer/Timer0_EX1.htm แล้วแบ่งสัญญาณออกเป็น3ช่วง นั้นไปทำอะไร อย่างนั้นก็เอาผลของการวัดหาร 3 ได้ไหม Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: chakatphon on March 27, 2013, 04:45:24 PM ขอเมลได้ป่าวคับผมจะส่งรูปสัญญาณไปให้ บนนี้อัพไม่ได้อะคับ
Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: gundam on March 27, 2013, 05:20:49 PM วิธีฝากรูปครับ
http://www.thaimicrotron.com/webboard2/index.php/topic,867.0.html Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: Hanajiji on March 27, 2013, 05:36:54 PM count = 0;
if(input == 1) { while(input == 1) { count++; } } return(count); แค่นี้ได้ป่าวคับ Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: chakatphon on March 27, 2013, 05:51:07 PM สัญญาณขณะปกติ
(http://upic.me/i/9q/zubt5.gif) Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: chakatphon on March 27, 2013, 05:53:34 PM สัญญาณที่เซนเซอร์แล้ว
(http://upic.me/i/wk/6cqm6.gif) Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: chakatphon on March 27, 2013, 06:09:45 PM ของผมคือเครื่องตรวจจับสนามไฟฟ้าอะคับผมจะทำให้มันเตือนด้วยLEDและบัสเซอร์โดยใช้pic 16f88
โดยเตือน3ระดับ ระดับแรก ดับปิบๆ ห่างๆ ระดับที่2 ถี่ๆ ระดับที่3ดังยาวคับ Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: gundam on March 27, 2013, 06:18:14 PM count = 0; if(input == 1) { while(input == 1) { count++; } } return(count); แค่นี้ได้ป่าวคับ - ตัวแปรที่ใช้ในการนับจะต้องมีขนาดพอที่จะเก็บข้อมูลนับได้ เช่น unsigned int16,unsigned int32 - การนับต้องกำหนดขอบเขตด้วยว่าไม่เกินเท่าไร #define DATAIN PIN_A1 #define BIT_ONE_MAX 428 unsigned int16 count; signed int RxBit(void) { while(input(DATAIN)==1) { Cnx++; if(Cnx>BIT_CN_MAX) //ขนาดเกินกว่ากำหนด return -1; } return Cnx; } Title: Re: สอบถามเรื่องการใช้ขาpicรับสัญญาณพัลคับ Post by: Hanajiji on March 27, 2013, 06:40:59 PM count = 0; if(input == 1) { while(input == 1) { count++; } } return(count); แค่นี้ได้ป่าวคับ - ตัวแปรที่ใช้ในการนับจะต้องมีขนาดพอที่จะเก็บข้อมูลนับได้ เช่น unsigned int16,unsigned int32 - การนับต้องกำหนดขอบเขตด้วยว่าไม่เกินเท่าไร #define DATAIN PIN_A1 #define BIT_ONE_MAX 428 unsigned int16 count; signed int RxBit(void) { while(input(DATAIN)==1) { Cnx++; if(Cnx>BIT_CN_MAX) //ขนาดเกินกว่ากำหนด return -1; } return Cnx; } ผมว่า แก้ปัญหาค่าสูงสุด โดย ใช้วิธี ใส่ delay_us() ไว้ในลูปดีกว่าครับ แถมแยกแค่สามระดับ น่าจะได้อยู่ ส่วน -1 return ออกมาไม่ได้ใช้ |