📄 timer1.c
字号:
/**********************************************************************
* System Name DOOR
* Source Name timer1.c
* Function 定时器1
* Version Date Editor Modification
* 1.0 2007/05/15 周斌 做成
**********************************************************************/
#include <avr/io.h>
#include <avr/interrupt.h>
#include "global.h"
#include "timer1.h"
#include "led.h"
#include "clock.h"
/**********************************************************************
* Function Name timer1_init
* Function Desc timer1初始化函数
* Return Value 无
* Parameter 无
* Version Date Editor Modification
* 1.0 2007/05/015 周斌 做成
**********************************************************************/
void timer1_init(void)
{
TCCR1B = 0x00;//停止定时器
//
TIMSK |= (1<<OCIE1A);//中断允许 比较A
TIMSK &=~(1<<OCIE1B);//中断禁止 比较B
TIMSK &=~(1<<TICIE1);//中断禁止 捕获
TIMSK &=~(1<<TOIE1); //中断禁止 溢出
//
TCNT1H = 0x00; //初始值
TCNT1L = 0x00; //初始值
//
OCR1AH = 0x38; //匹配A值,1S产生一次比较中断
OCR1AL = 0x3F; //匹配A值,1S产生一次比较中断
//
OCR1BH = 0x1C; //匹配B值,无用
OCR1BL = 0x1F; //匹配B值,无用
//
ICR1H = 0xFF; //输入捕捉匹配值,无用
ICR1L = 0xFF; //输入捕捉匹配值,无用
//
TCCR1A = 0x00; //启动定时器,1024分频率,CTC模式
TCCR1B = 0x0D; //启动定时器,1024分频率,CTC模式
}
/**********************************************************************
* Function Name SIGNAL(SIG_OUTPUT_COMPARE1A)
* Function Desc timer1,比较A中断
* Return Value 无
* Parameter 无
* Version Date Editor Modification
* 1.0 2007/05/15 周斌 做成
**********************************************************************/
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
//compare occured TCNT1=OCR1A
LED2NEG();
if(clock_sec < 59)
{
clock_sec++;
}
else
{
clock_sec=0;
if(clock_min < 59)
{
clock_min++;
}
else
{
clock_min = 0;
if(clock_hour < 23)
{
clock_hour++;
}
else
{
clock_hour = 0;
}
}
}
//
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -