📄 timer0.c
字号:
#define START_TICK_TIMER {TIMSK = 0x02;}
#define STOP_TICK_TIMER {TIMSK = 0x00;}
/* 功能:10ms定时器(T0)初始化
* 输入:无
* 输出:无
* 返回值:无
* 说明:无
*/
void init_timer0 (void) {
//在1Mhz下,256分频,计次39
TCCR0 = 0x0e;
OCR0 = 39;
//只保留比较匹配中断
TIMSK = 0x02;
}
void init_tick_timer (void) {
//在1Mhz下,256分频,计次39
TCCR0 = 0x0e;
OCR0 = 39;
}
//一个更精确的停表
void init_stop_watch (void) {
TCCR1A = 0x00;
TCCR1B = 0x05;
TCCR1C = 0x00;
}
void start_stop_watch (void) {
//16位写,低字节写生效
TCNT1H = 0x00;
TCNT1L = 0x00;
TCCR1B = 0x05; //启动计数CLK
}
us stop_stop_watch (void) {
union {
us s;
uc c[2];
} t;
TCCR1B = 0x00; //停止计数CLK
//16位读,低字节读生效
cli ();
t.c[0] = TCNT1L;
t.c[1] = TCNT1H;
sei ();
return t.s;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -