📄 timer.h
字号:
void init_devices0(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
TCCR0 = 0x00; //stop timer
TCNT0 = 0xCE; //set count value
OCR0 = 0x32;
TCCR0 = 0x02; //start timer
MCUCR = 0x00;
EMCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x02;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
TCNT0 = 0xCE; //reload counter value
if(PIND&0X20==1)
{
TCCR0 = 0x00;
init_devices1();
}
}
//call this routine to initialize all peripherals
void init_devices1(void)
{
unsigned int i;
unsigned char n,j,m;
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
TCCR1B = 0x00; //stop
TCNT1H = 0xF5; //setup
TCNT1L = 0x11;
TCCR1A = 0x00;
TCCR1B = 0x01; //start Timer
MCUCR = 0x00;
EMCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x80;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
void timer1_ovf_isr(void)
{
TCCR1B = 0x00;
TCNT1H = 0xF5; //reload counter high value
TCNT1L = 0x11; //reload counter low value
m<<=1;
if(PIND&0X20==0)
{
m&=0;
}
else
{
m&=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -