|
||||||||||||||
โมดูล CCP(Capture/Compare/PWM) | ||||||||||||||
PIC16F6xx มีโมดูล CCP อยู่1 ตัวคือ CCP1 มีรีจิสตอร์ขนาด 16 บิทคือ CCPR1 ประกอบด้วย CCPR1H และ CCPR1L | ||||||||||||||
CPP1 มีหน้าที่ในการเก็บข้อมูลอยู่ 3 ลักษณะคือ | ||||||||||||||
เก็บข้อมูลในการตรวจจับสัญญาณ (Capture) เก็บข้อมูลเปรียบเทียบสัญญาณ (Compare) เก็บค่า duty cycle ในการมอดูเลชั่นทางความกว้างของพัลส์ (PWM Pulse Width Modulator) |
||||||||||||||
-แต่ละหน้าที่ไม่สามารถทำงานพร้อมกันได้ ต้องเลือกการใช้งานในลักษณะใดลักษณะหนึ่งเท่านั้น | ||||||||||||||
โดยการทำงานจะต้องทำงานร่วมกับ timer ภายใน ดั้งนี้ | ||||||||||||||
|
||||||||||||||
1). การทำงานในโหมดตรวจจับสัญญาณ (Capture) ผ่านทางขา RB3/CCP1 | ||||||||||||||
CAPTURE MODE OPERATION BLOCK DIAGRAM |
||||||||||||||
|
||||||||||||||
NOTE : Timer1 จะต้องทำงานใน Timer mode หรือ synchronized Counter mode ในการตรวจจับสัญญาณเท่านั้น ไม่สามารถทำงาน เมื่อเป็น Asynchronous Counter mode | ||||||||||||||
การทำงานในโหมดเปรียบเทียบ(Compare) | ||||||||||||||
การทำงานในโหมด การมอดูเลชั่นทางความกว้างของพัลส์ (PWM Pulse Width Modulator) | ||||||||||||||
การหาค่าเวลาน้อยที่สุด (ความถี่สูงที่สุด) ที่โมดูล CCP1 สามารถตรวจจับได้ เมื่อรวมค่าเวลาหน่วงภายในแล้ว | ||||||||||||||
Tcpp = (3Tcy + 40*10^-9)/N | ||||||||||||||
Tccp เป็นคาบเวลาของ CPP1 ,Tcy เป็นคาบเวลาของระบบเท่ากับ 4/fosc, N คือค่าของ prescaler มีค่าเท่ากับ 1,4,16 | ||||||||||||||
Tcpp = (3*(4/fosc) +40 *10^-9)/N | ||||||||||||||
เช่นเมื่อใช้ XTAL = 4 MHz ,N=16 | ||||||||||||||
Tcpp = 190*10^-9 =190 ns | ||||||||||||||
ความถี่สูงที่สุด f=1/T = 5.26 MHz | ||||||||||||||
ฟังชัน setup_ccp1(); เพื่อใช้กำหนดเงื่อนไขในการตรวจจับสัญญาณ | ||||||||||||||
ตัวอย่างการใช้งาน Capture ร่วมกับ Timer1เป็นเครื่องนับความถี่ | ||||||||||||||
2). การทำงานในโหมดเปรียบเทียบข้อมูล (Compare) | ||||||||||||||
COMPARE MODE OPERATION BLOCK DIAGRAM |
||||||||||||||
-.ในโหมดนี้โมดูล CCP1จะทำการเปรียยเทียบข้อมูล CCPR1กับ Timer1 หากเท่ากัน ก็จะเกิด Interrupt หรือให้เกิดเอาต์พุตที่ขา RB3/CCP1 โดยสามารถทำให้ | ||||||||||||||
|
||||||||||||||
ฟังชัน setup_ccp1(); เพื่อใช้กำหนดเงื่อนไขในการเปรียบเทียบ | ||||||||||||||
ตัวอย่างการทำงานในโหมดเปรียบเทียบข้อมูล (Compare) | ||||||||||||||
3). การทำงานร่วมกับ Timer2 ในโหมดมอดูเลชั่นทางความกว้างของพัลส์ (PWM Pulse Width Modulator) | ||||||||||||||
|
||||||||||||||
SIMPLIFIED PWM BLOCK DIAGRAM |
||||||||||||||
ตัวอย่างการใช้งาน PWM ผลิตความถี่ 1 KHz duty cycle 50% | ||||||||||||||