Atmega328P Datasheet 19. TC0-8-bit Timer/Counter0 with PWM

Started by tha, October 04, 2019, 08:09:22 AM

Previous topic - Next topic

tha

จะขึ้นเรื่อง TC0 แล้วนะ แต่ก็ชักจะลืมแล้วเรื่อง timer/counter ต้องอ่านหนังสือ AVR ภาษาไทยกอนสักหน่อย ซื้อมาไว้แล้ว ให้รู้ภาพกว้างๆไว้ก่อน ก่อนที่จะไปแปลภาษาอังกฤษจะได้ง่ายขึ้น เดาทางได้ ถ้าไปอ่านคู่มือภาษาอังกฤษเลยก็กลัวจะมีมั่ว   :)
         http://www.appsofttech.com/store/product/view/%E0%B8%AB%E0%B8%99%E0%B8%B1%E0%B8%87%E0%B8%AA%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%84%E0%B8%A7%E0%B8%9A%E0%B8%84%E0%B8%B8%E0%B8%A1%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%AF_AVR_%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2_C_%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%A1_1-19590643-th.html

tha

เคร ตกลงแปลต่อ ขออ่านหนังสือสักวันสองวัน

tha

ไม่แปลแล้วนะ ทีมคงจะบอกมา มีผลกระทบอะไรบ้างหล่ะ ให้ไปดูอย่างอื่นใช่ไหม ขออภัยท่านที่ติดตามมา ณ ที่นี้ด้วยครับ


tha

ตกลงให้แปลกันต่อนะ น่าจะมีข้อดีมากกว่าข้อเสียใช่ไหม ช่วงนี้กำแพงเพชรจะเข้าหน้าหนาวแล้ว เย็นสบายอย่างนี้ คงจะแปลได้ลื่น พอถึงหน้าร้อนต้องขอห้องแอร์นะ ไม่งั้นก็ต้องหยุดยาวไปเลย ต่อให้เก่งแค่ไหนอีก สาเหตุที่ประเทศไทยไม่เจริญทางด้านวัตถุ ร้อน

tha

19. TC0 - 8-bit Timer/Counter0 with PWM
ลิงค์ที่เกี่ยวข้อง
Timer/Counter0 and Timer/Counter1 Prescalers ในหน้า 186

19.1. Features (คุณสมบัติ)
   • Two independent Output Compare Units
   • Double Buffered Output Compare Registers
   • Clear Timer on Compare Match (Auto Reload)
   • ไม่มีปัญหาเล็กๆน้อยๆ, phase correct Pulse Width Modulator (PWM)
   • Variable(ซึ่งเปลี่ยนแปลงได้) PWM period
   • Frequency generator
   • Three independent interrupt sources (TOV0, OCF0A, and OCF0B)

Timer/Counter0 (TC0) เป็น general purpose 8-bit Timer/Counter module, มี 2 independent Output Compare Units, และรองรับ PWM. ช่วยให้กำหนดเวลาดำเนินการโปรแกรมอย่างแม่นยำ (การจัดการเหตุการณ์) และ wave generation.

block diagram อย่างง่ายๆของ 8-bit Timer/Counter ถูกแสดงที่ข้างล่างนี้. CPU accessible(สามารถเข้าถึงได้) I/O Registers, พร้อมด้วย I/O bits และ I/O pins, ถูกแสดงเป็นตัวหนา. device-specific I/O Register และตำแหน่งบิตถูกระบุไว้ใน Register Description. สำหรับการจัดวางจริงๆของ I/O pins, โปรดดู pinout diagram.

TC0 ถูกเปิดใช้งานโดยการเขียนบิต PRTIM0 ใน "Minimizing Power Consumption" ให้เป็น '0'.

TC0 ถูกเปิดใช้งานเมื่อบิต PRTIM0 ใน Power Reduction Register (PRR.PRTIM0) ถูกเขียนเป็น '1'


tha

19.2.1. Definitions (คำนิยาม)
การอ้างอิงถึง register และ bit จำนวณมากในบทนี้ถูกเขียนในรูปแบบทั่วไปนี้ :
• n=0 หมายถึง Timer/Counter number
• x=A,B หมายถึง Output Compare Unit A หรือ B

อย่างไรก็ตามเมื่อใช้ register หรือ bit definitions ใน program, รูปแบบที่แน่นอนต้องถูกใช้ เช่น TCNT0 สำหรับการเข้าถึง Timer/Counter0 counter value.

คำจำกัดความต่อไปนี้ถูกนำมาใช้ตลอดทั้งบทนี้ :




BOTTOM   ตัวนับถึง BOTTOM เมื่อมันกลายเป็นศูนย์ (0x00 สำหรับ 8-bit counters, หรือ 0x0000 สำหรับ 16-bit counters).

MAX   ตัวนับถึงค่า Maximum ของมันเมื่อมันกลายเป็น 0xFF (255 ฐานสิบ, สำหรับ 8-bit counters) หรือ 0xFFFF (65535 ฐานสิบ, สำหรับ 16-bit counters).

TOP  ตัวนับถึง TOP เมื่อมันกลายเป็นเท่ากับค่าสูงสุดในลำดับการนับ ค่า TOP สามารถถูกกำหนดให้เป็นค่าคงที่ MAX หรือค่าที่เก็บไว้ใน OCR0A Register. การกำหนดนี้ขึ้นอยู่กับโหมดการทำงาน

ปล. เอาเรื่องจิตใจสักหน่อย ธรรมสมาทาน 4 เอาสุขหรือเอาทุกข์ก่อนดีหล่ะ เอาทุกข์ก่อนก็ปฏิบัติธรรม นั่งสมาธิกำหนดลมหายใจเข้าออก หายใจเข้าพุท หายใจออกโธ ก็จะเครียดหน่อยในตอนแรกๆ นานไปก็จะดีขึ้นตามลำดับ ทำให้ลมหายใจยาวละเอียดดีด้วย ไม่ค่อยเป็นหวัดเป็นไอ มีสมาธิดีด้วย อ่านหนังสือได้ดี ไม่มีนิวรณ์มากวนครับ
http://www.84000.org/tipitaka/dic/d_item.php?i=145
http://www.84000.org/tipitaka/dic/

tha

19.2.2. Registers
Timer/Counter 0 register (TCNT0) และ Output Compare TC0x registers (OCR0x) เป็น 8-bit registers. Interrupt request (ตัวย่อคือ Int.Req. ใน block diagram) signals ถูกมองเห็นได้ทั้งหมดใน Timer Interrupt Flag Register 0 (TIFR0). ทุก interrupts จะถูกกำหนดเป็นราย interrupt ไปด้วยรีจีสเตอร์ Timer Interrupt Mask Register 0 (TIMSK0). TIFR0 และ TIMSK0 ไม่ถูกแสดงในรูปนี้.

TC สามารถถูกให้สัญญานนาฬิกาภายในโดยทาง prescaler, หรือโดยสัญญานนาฬิกาภายนอกบน T0 pin. Clock Select logic block ควบคุมแหล่งที่มาของสัญญานนาฬิกาและขอบขาที่ถูกใช้โดย Timer/Counter เพื่อเพิ่ม(หรือลด) ค่าของมัน. TC ไม่ทำงานเมื่อไม่ได้เลือกแหล่งสัญญาณนาฬิกา. output จาก Clock Select logic เรียกว่า timer clock (clkT0).

The double buffered Output Compare Registers (OCR0A และ OCR0B) ถูกเปรียบเทียบกับค่า Timer/Counter ตลอดเวลา. ผลของการเปรียบเทียบสามารถถูกใช้โดย Waveform Generator เพื่อสร้าง PWM หรือ variable frequency output บน Output Compare pins (OC0A และ OC0B). ดูที่ Output Compare Unit สำหรับรายละเอียด. The compare match event จะเซท Compare Flag (OCF0A หรือ OCF0B) อีกด้วย ซึ่งสามารถถูกใช้สร้าง Output Compare interrupt request.

ลิ้งค์ที่เกี่ยวข้อง
Timer/Counter 0, 1 Prescalers บนหน้า 186

19.3. Timer/Counter Clock Sources
TC สามารถถูกให้สัญญานนาฬิกาโดยแหล่งนาฬิกาภายในหรือแหล่งสัญญานนาฬิกาภายนอก แหล่งสัญญานนาฬิกาถูกเลือกโดยการเขียนไปยังบิท Clock Select (CS0[2:0]) ใน Timer/Counter Control Register (TCCR0B).

tha

วัตถุเจริญ แต่จิตใจคนเสื่อม เฮ้อ ไม่เอาหล่ะ เอาธรรมะ พัฒนาจิตใจดีกว่า