|
|
|
|
|
|
|
วิธีการศึกษา
โมดูล Timer แต่ละตัวมีขนาดเท่าไร
ขอบเขตในการนับ หรือ สร้างฐานเวลา มีค่าเท่าไร
การอ่านสัญาณญาณจากภายนอก หรือการส่งสัญญาณ ออกสู่ภายนอก ของแต่ละโมดูลที่ขาใด
สำหรับการเพื่อไว้ในการออกแบบ
คุณสมบัติพิเศษของ Timer แต่ละตัวและช่องทางเลือก
|
|
|
|
-
Timer0 จะใช้ prescaler ร่วมกับ watchdog จะต้องเลือกอย่างใดอย่างหนึ่ง |
|
|
- Timer2
จะถูกใช้แบฐานเวลาให้กับ โมดูลสื่อสารข้อมูล อนุกรมแบบซิงโครนัส |
|
|
|
|
|
|
|
การใช้งาน Timer
ร่วมกับโมดูล CCP อย่างไร |
|
|
|
|
|
|
|
|
Timer0 |
|
|
ใช้เป็น timer/counter
ขนาด 8-bit (00-FFh)
รีจิสเตอร์ Timer0 สามารถเขียนอ่านได้
มีตัวหาร (prescaler) ขนาด 8-bit คือสามารถเลือกอัตราส่วนเป็น 2,4,8,16,32,64,128,256
และตัวเพิ่มค่า (Postscaler) เวลาสำหรับ watchdog สามารถเลือกอัตราส่วนเป็น 1,2,4,8,16,32,64,128
โดยสามารถเลือกให้งานได้อย่างใดอย่างหนึ่ง
สามารถเลือกแหล่งสัญญาณนาฬิกาจากภายใน หรือภายนอกผ่านขา RA4/T0CKI
มี Interrupt เมื่อการนับเปลี่ยนจาก FFh ไปเป็น 00h (overflow )
เมื่อใช้แหล่งสัญญาณนาฬิกาจากภายนอก สามารถเลือกได้ว่าจะนับที่ขอบขาขึ้นหรือขาลง |
|
|
|
|
|
Timer1 |
|
|
ใช้เป็น
timer/counter ขนาด 16-bit (0000-c)
รีจิสเตอร์ Timer1 สามารถเขียนอ่านได้
มีตัวหาร (prescaler) ขนาด 8-bit คือสามารถเลือกอัตราส่วนเป็น 1,2,4,8
สามารถเลือกแหล่งสัญญาณนาฬิกาจากภายใน หรือภายนอก
เมื่อทำงานในโหมด Counter จะรับสัญญาณจากภายนอกผ่านทางขา RB6/T1CKI
สามารถให้ Synchronous กับสัญญาณนาฬิกา ภายในได้
และถ้าเป็นแบบ Asynchronous Timer1 ยังคงทำงานอยู่
ถึงแม้และอยู่ในโหมด sleep
มี Interrupt เมื่อการนับเปลี่ยนจาก FFFFhไปเป็น 0000h (overflow ) หาก
Enable Interrupt ไว้ เมื่ออยู่ในโหมด sleep จะทำให้ ไมโครคอนโทรลเลอร์
Wake-up
มีวงจรออสซิลเลเตอร์พลังงานต่ำสามารถผลิตความถี่ได้สูงสุด 200KHz เมื่อต่อ
XTAL ที่ขา RB7/TIOSI,RB6/TIOS
สามารถใช้โมดูล CCP(Capture/Compare/PWM) ได้ 2 โหมดคือ Capture/Compare
เมื่อ Timer1 นับจนกระทั้งมีค่าเท่ากันกับ ใน CCP1 จะทำให้เกิดการ Interrupt
- CCPR1 มีขนาด 16 บิทประกอบด้วย CCPR1H และ CCPR1L |
|
|
|
|
|
Timer2 |
|
|
ใช้เป็น timer
ขนาด 8-bit (00-FFh) นับได้ 256 ค่า
รีจิสเตอร์ Timer2 สามารถเขียนอ่านได้
สามารถใช้สัญญาณนาฬิกาได้จากเฉพาะภายในเท่านั้น
มี Interrupt เมื่อการนับเปลี่ยนจาก FFh ไปเป็น 00h (overflow )
มีทั้งตัวลดทอนการส่งออก (postscaler) มีค่า 1-16 ,ตัวหารความถออสซิลเลเตอร์(
prescaler) สามารถเลือกอัตราส่วนเป็น 1,4,16 และ รีจิสเตอร์คาบเวลา (period
register)
สามารถใช้โมดูล CCP(Capture/Compare/PWM) ได้ 1โหมดคือ PWM ในการควบคุม duty cycle ของสัญญาณ PWM ออกทางขา RB3/CCP1
สัญญาณเอาต์พุตของ Timer 2 ยังถูกใช้ใน โมดูลสื่อสาร ข้อมูลอนุกรม แบบซิงโครนัส
(Synchronous Serial Port module :SSP) |
|
|
|
|
|
CCP(Capture/Compare/PWM) |
|
|
CPP1 เป็นโมดูลที่ใช้ร่วมกับ
Timer มีหน้าที่ในการเก็บข้อมูลอยู่ 3 ลักษณะคือ |
|
|
เก็บข้อมูลในการตรวจจับสัญญาณ
(Capture) ใช้งานร่วมกับ timer1
เก็บข้อมูลเปรียบเทียบสัญญาณ (Compare) ใช้งานร่วมกับ
timer1
เก็บค่า duty cycle ในการมอดูเลชั่นทางความกว้างของพัลส์ (PWM
Pulse Width Modulator) ใช้งานร่วมกับ timer2
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างโปรแกรม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ศมิทธิ์ เอมสมบัติ |
|
|
|
|