thanh ghi tccr0 có 3 bit là cs2-cs0: khi nó =5 thì chọn chia tần là 1/1024. MÌnh muốn tạo xung chùm 5k nên mình set OCR0=2. timer0 đếm đến 2 sẽ xảy ra ngắt. khi có ngắt đảo bít PD.0 sẽ tạo ra xung. nhưng mà mình mô phỏng nó ra xung tần số có 166hz gì đó. đây là codde mọi người giúp với xem nó sai gì. thanks!
#include <mega16.h>
interrupt [TIM0_COMP] void timer0_comp_isr(void)
{
PORTD.0^=1;
TCNT0=0x00;
}
void main(void)
{
DDRD=0x01;
PORTD=0x00;
// dat che do hoat dong cho timer0
//ctc top = OCR0
//xung nhip la xung hoat dong cua chip
// prescale = 1/1024
//OCR0=0x02 ----------- timer0 dem den 2 de tao tan so 5khz
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x02;
// Cho phep ngat
TIMSK=0x22;
#asm("sei")
// vong lap vo tan
while(1)
{};
}
#include <mega16.h>
interrupt [TIM0_COMP] void timer0_comp_isr(void)
{
PORTD.0^=1;
TCNT0=0x00;
}
void main(void)
{
DDRD=0x01;
PORTD=0x00;
// dat che do hoat dong cho timer0
//ctc top = OCR0
//xung nhip la xung hoat dong cua chip
// prescale = 1/1024
//OCR0=0x02 ----------- timer0 dem den 2 de tao tan so 5khz
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x02;
// Cho phep ngat
TIMSK=0x22;
#asm("sei")
// vong lap vo tan
while(1)
{};
}
Comment