Atmega328P Datasheet 14. PM - Power Management and Sleep Modes

Started by tha, November 01, 2017, 11:51:44 AM

Previous topic - Next topic

tha

ขอบคุณครับ คุณ ROM ที่แนะนำ เดี๋ยวจะลองศึกษาดูครับ ผมคนรุ่นเก่าใช้อะไรใหม่ๆไม่ค่อยเป็น โลกแคบไปหน่อย เดี๋ยวจะลองหัดใช้ดูครับ  >:(

ROM

Quote from: tha on December 01, 2017, 08:51:43 AM
ขอบคุณครับ คุณ ROM ที่แนะนำ เดี๋ยวจะลองศึกษาดูครับ ผมคนรุ่นเก่าใช้อะไรใหม่ๆไม่ค่อยเป็น โลกแคบไปหน่อย เดี๋ยวจะลองหัดใช้ดูครับ  >:(

เพิ่งเริ่มหัดใช้ git อยู่เหมือนกันครับ แต่เห็นว่าน่าจะมีประโยชน์ดี
ตอนนี้ก็เริ่มต้นศึกษาจากตรงนี้  http://www.select2web.com/git/git-1.html แต่ก็ยังไม่คล่องเท่าไหร่ครับ
( ถ้าใจร้อนก็ไปตอนที่ 7 เลยก็ได้ http://www.select2web.com/git/git-7.html )
เลยอยากแนะนำท่าน tha มาใช้ด้วยกันไปเลย เห็นท่านเขียน Code เจ๋งๆอยู่
น่าจะเป็นอีกเรื่องที่น่าสนุกนะครับ

tha

เดี๋ยวจะลองศึกษาดูครับ ตอนนี้ลอง บอร์ด atmega328p ทำ adc 3 channel ดู ไม่ใช้ interrupt ก็ทำงานได้ครับ

http://www.mediafire.com/file/768tfodccmzs10r/adc_usart4.rar


tha

ทำ adc 3 channel แบบใช้ interrupt  ต้องใช้วิธีเซท flag a, b ถึงจะทำงานได้ นอกหัวข้อไปเยอะเลย adc ยังไม่ได้แปลเลย หาซื้อหนังสือมาอ่านเอานะครับ

http://www.mediafire.com/file/fmopnld36u1vuo1/adc_usart5.rar

tha

เอาตัวแปร a, b ขึ้นก่อน สตาร์ทการแปลงจะแน่นอนกว่าหรือป่าว พรายกระซิบบอกมาอีกแล้ว  ;)
 
Quote
  a = ch;
  b = 1;
  // start single convertion
  // write '1' to ADSC
  ADCSRA |= (1<<ADSC);
 

tha

ผิดอีกจุด ใน interrupt routine ไม่ต้องเช็ค interrupt flag แล้ว เพราะมันถูกเคลียร์โดย hardware เมื่อเข้า interrupt ผมไม่ได้ดู data sheet ผมก็นึกว่ามันจะเหมือน stm32 โปรแกรมจุดนี้มันก็ผิดด้วยถึงผ่านได้ แก้ใขด้วยครับ เร่งๆก็เป็นอย่างนี้มีผิดพลาดเยอะ


ดีบักลอยๆ ก็ได้ไม่ต้องต่อไมโครคอนโทรลเลอร์ ถ้า compile มีไฟล์ .elf แล้ว
เริ่ม start debug -> set break point -> run ดูบิท ADIF ก็ไม่ติดเป็น "1" ครับ


tha

อยู่ว่างๆก็ทำโปรแกรมเล่นไป ลองจัดโปรแกรมให้เป็นระเบียบ พยายามทำโปรแกรมย่อย ให้ส่วน main เรียกใช้โปรแกรมย่อยมากๆ ทำให้ code size ลดลง ก็ ok
Quote// UART Buffer
char uart_buf[32];    
ต้องเพิ่ม uart_buf[] จาก 16 เป็น 32 ไม่งั้น ADC0 ขึ้นไม่ตรงและค้าง คงจะเป็นจาก uart_buf กำหนด size ไว้น้อยเกินไป ไม่พอเก็บอักขระที่ยาว
http://www.mediafire.com/file/yq28clqcod4wzzj/adc_usart6.rar

tha

Quoteเพิ่งเริ่มหัดใช้ git อยู่เหมือนกันครับ แต่เห็นว่าน่าจะมีประโยชน์ดี
ตอนนี้ก็เริ่มต้นศึกษาจากตรงนี้  http://www.select2web.com/git/git-1.html แต่ก็ยังไม่คล่องเท่าไหร่ครับ
( ถ้าใจร้อนก็ไปตอนที่ 7 เลยก็ได้ http://www.select2web.com/git/git-7.html )
เลยอยากแนะนำท่าน tha มาใช้ด้วยกันไปเลย เห็นท่านเขียน Code เจ๋งๆอยู่
น่าจะเป็นอีกเรื่องที่น่าสนุกนะครับ

มันลงตามนี้ใช่หรือเปล่าคุณ ROM http://www.select2web.com/git/git-4.html หรือเป็นตัวอื่นสำหรับ windows 7 32bit ผมอัฟไฟล์ยังไม่ได้เลย แต่ฝั่งเว็ปเป็นแบบนี้ https://github.com/thamanoon/adc_usart6 ถูกต้องใหม อัฟโหลดยังไม่ได้ครับ