mình làm bộ định thì 10ms với timer 1 cho mega32 ko biết sai chỗ nào mà mô phỏng không chạy, xem giúp chỉ điểm với
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
int main(void){
DDRB=0xFF; //PORTB la output PORT
PORTB=0x00;
TCCR1B=(1<CS10);// CS12=0, CS11=0, CS10=1: chon Prescaler =1
// thanh ghi TCCR1B duoc dung thay vi TCCR0 cua Timer0
TCNT1=55535; //gan gia tri khoi tao cho T/C1
TIMSK=(1<<TOIE1);//cho phep ngat khi co tran o T/C1
sei(); //set bit I cho phep ngat toan cuc
while (1){ //vòng lặp vô tận
//do nothing
}
return 0;
}
//trinh phuc vu ngat tran T/C1
ISR (TIMER1_OVF_vect ){
TCNT1=55535; //gan gia tri khoi tao cho T/C1
PORTB ^=1; //doi trang thai Bit PB0
}
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
int main(void){
DDRB=0xFF; //PORTB la output PORT
PORTB=0x00;
TCCR1B=(1<CS10);// CS12=0, CS11=0, CS10=1: chon Prescaler =1
// thanh ghi TCCR1B duoc dung thay vi TCCR0 cua Timer0
TCNT1=55535; //gan gia tri khoi tao cho T/C1
TIMSK=(1<<TOIE1);//cho phep ngat khi co tran o T/C1
sei(); //set bit I cho phep ngat toan cuc
while (1){ //vòng lặp vô tận
//do nothing
}
return 0;
}
//trinh phuc vu ngat tran T/C1
ISR (TIMER1_OVF_vect ){
TCNT1=55535; //gan gia tri khoi tao cho T/C1
PORTB ^=1; //doi trang thai Bit PB0
}
Comment