工程如下:目前只是测试定时器,程序刚开始写,后续还要加其他的功能 8M外部晶振 直接点亮LED是可以实现的
#include "SGJ_HEADER.h"
void timer0_init(void)
{
//TIMSK |= 1<<OCIE0;//不屏蔽T0匹配中断
//TIFR0 |=0X02;
TIMSK0 |= 0X02;//不屏蔽T0匹配中断
OCR0A = 0X4e;//匹配值 78 10ms
TCCR0A |=0X02;
TCCR0B |=0X05;//CTC模式,1024分频
//TCCR0A |= (1 << WGM01) | (0 << WGM00) | (1 << CS02) | (0 << CS01) | (1 << CS00);
}
ISR(TIMER0_OVF_vect)
{
LED;
led_tim++;
if(led_tim>=100)
{
led_tim=0;
led_标志寄存器=1;
}
}
int main(void)
{
cli();
DDRB=_BV(1);//
DDRB=_BV(2);
DDRB=_BV(3);
DDRB=0xff;
LCD_Init();
timer0_init();
led_tim=0;
led_标志寄存器=0;
sei();
for(;;)
{
LCD_SET();
LCD_DISP();
if(led_标志寄存器)
{
LED;//点亮LED
_delay_ms(200);
_delay_ms(200);
_delay_ms(200);
_delay_ms(200);
LCD_DISP();
led_标志寄存器=0;
}else
{
LED0;//关闭LED
}
}
}
|