📄 timer.c
字号:
#include <iom8v.h>
#include "main.h"
#include "shell.h"
#include "8880.h"
#include "serial.h"
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0xE3; //setup
TCNT1L = 0xE1;
OCR1AH = 0x1C;
OCR1AL = 0x1F;
OCR1BH = 0x1C;
OCR1BL = 0x1F;
ICR1H = 0x1C;
ICR1L = 0x1F;
TCCR1A = 0x00;
TIMSK |= 0x04;
}
int x=0;
#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
void timer1_ovf_isr(void)
{
int i;
//TIMER1 has overflowed
TCNT1H = 0xE3; //reload counter high value
TCNT1L = 0xE1; //reload counter low value
switch (sysoption.calling)
{ case 1:
if (sysoption.timer==40){
M8880_Handdown;
for (i=0;i<10;i++) delay(0xffff);
serial_send(noresponse);
sysoption.calling=0;
TCCR1B=0x0;
}else sysoption.timer++;
break;
case 2:
sysoption.calling=3;
serial_send("answered");
TCCR1B=0;
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -