Title: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็ŧ Post by: pakapong16 on December 17, 2009, 05:32:06 PM รบกวนพี่ s_engine หรือ smitdh ทีครับ
เพราะผมลองป้อนอินพุต DC ผ่าน VR ปรับค่าจ่ายเข้ากับ MCU แล้วปรากฏว่า ป้อนค่าอินพุตเท่ากัน แต่อ่านค่าออกมาไม่เท่ากัน ผมไม่ได้เปลี่ยนค่าอินพุตเลย เพียงแต่กดปุ่ม รีเช็ทให้ mcu อ่านค่าอีกที มันเป็นที่อะไรครับ หรือว่า A/D ยังทำงานในครั้งแรกไม่เสร็จแล้วส่งค่ามาแสดงเลย มีผลไหมครับ และถ้าผมเขียนโค๊ดเช็คว่า A/D ทำงานเสร็จรึยังนี้ต้องเขียนยังงัยครับ Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็& Post by: s_engine on December 17, 2009, 09:55:16 PM ลองเอาโค้ดมาแปะ ดู หน่อย
ได้วงจรที่ต่อด้วยยิ่งดี นะครับ Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็& Post by: smitdh on December 18, 2009, 12:39:50 AM เมื่อเริ่มจ่ายไฟให้ MCU หรือเมื่อ Reset MCU ยังไม่ควรติดต่อกับ I/O ในทันทีครับ
ควรจะ delay สัก 100 ms ก่อน (สำหรับอุปกรณ์ทั่วๆไป) ลองเพิ่มทำสั่ง delay_ms(100); ไว้ใน main ก่อนที่จะใช้คำสั่ง A/D ครับ Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็& Post by: pakapong16 on December 18, 2009, 06:19:12 PM lcd_init();
delay_ms(1000); start=0; max1=0; printf(lcd_putc,"\fTEST ADC"); printf(lcd_putc,"\nREADY..."); delay_ms(2500); printf(lcd_putc,"\fTEST ADC"); printf(lcd_putc,"\nADC1 = "); delay_ms(100); while (TRUE){ set_adc_channel(1); delay_ms(2); ADC1 = Read_ADC(); start=ADC1; if(start>max1) { max1=start; printf(lcd_putc,"\fTEST ADC"); printf(lcd_putc,"\nADC1 = %ld",max1); delay_ms(100); Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็& Post by: s_engine on December 20, 2009, 03:15:19 PM ตอนนี้ทำงานได้หรือยังครับ
Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็& Post by: pakapong16 on December 21, 2009, 10:50:41 AM มันก้อทำงานได้ครับ
แต่ค่า output แต่ละครั้งไม่ตรงกัน และไม่ใกล้เคียงเลย พอจะมีวิธีแก้ไขอะไรได้ไหมครับ Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D ทำงานเสร็& Post by: s_engine on December 21, 2009, 08:59:29 PM ฮาร์ด แวร์ ต่ออย่างไร ใช้ R แบบปรับค่าได้หรือ ปล่าว ลองปรับ ค่า ขึ้น ลง หรือยัง
ให้เอา function ที่เอาค่าสูงสุดออก โดยให้แสดงค่า แบบ ตลอดเวลา แล้วลองปรับ R ดูผล ของ ค่าที่ได้ ตั้ง R ไว้ตำแหน่งเดิม แล้วไป รีเซต pic ปล่อยไว้ มันก็จะอ่าน ค่าแรก ก็คือ ค่าสุดท้ายก่อนกดรีเซต ดูว่าตรงกันไหม แรงดัน อนาลอค ที่จ่ายให้ pic อยู่ในช่วง 0-5 V หรือปล่าว ห้ามเกิน โดยเด็ดขาด ลองดูอีกทีนะ ทำไปช้าๆ เริ่มไปทีละนิด เพิ่มไปทีละส่วน เอาให้ work ไปทีละอย่าง Title: Re: ถ้าต้องการเขียนโค๊ดเช็คว่า A/D Post by: pakapong16 on December 22, 2009, 01:14:56 AM ขอบคุณครับ
|