📄 timer.c
字号:
#include <iom128.h>
#include <macros.h>
#define Red_LED_on PORTB&~BIT(0)
#define Red_LED_off PORTB|(1<<0)
#define Green_LED_on PORTB&(~(1<<1))
#define Green_LED_off PORTB|(1<<1)
#define Yellow_LED_on PORTB&(~(1<<2))
#define Yellow_LED_off PORTB|(1<<2)
#define Flag_H PORTB|(1<<3)
#define Flag_L PORTB&~(1<<3)
#pragma interrupt_handler Timer_INT:15 //定时器中断
void Port_initilaze(void);
void Timer_initilaze(void);
unsigned char flag = 0;
void main(void)
{
unsigned char achar;
unsigned char i;
Port_initilaze();
Timer_initilaze();
PORTB = Red_LED_on;
PORTB = Yellow_LED_on;
//PORTB = Green_LED_on;
for(;;)
{
if (flag == 0)
{
PORTB = Flag_H;
PORTB = Green_LED_off;
}
else
{
PORTB = Flag_L;
PORTB = Green_LED_on;
}
}
}
void Port_initilaze(void)
{
DDRB = 0xFF;
PORTB = 0xFF;
}
void Timer_initilaze(void)
{
TCCR1A = 0x00; //普通方式,引脚作IO用
TCCR1B = 0x02; //CK/8
TCCR1C = 0;
TCNT1 = 0x3d09; //15625-65535递增,到0溢出
TIMSK = 0x04; //开放T1溢出中断
SEI();
}
void Timer_INT(void)
{
TCNT1 = 0x3d09;
flag = ~flag;
PORTB = Green_LED_on;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -