📄 time._c
字号:
#include <iom64v.h>
#include <macros.h>
#include "head.h"
/*-----------------------------------------------------------------
函数名称: void Timer1Init(void)
函数功能: 定时器1初始化 256预分频 定时一秒
参 数:
返 回 值: 无
-----------------------------------------------------------------*/
void Time1Init()
{
CLI(); //关全部中断 //开中断
TCCR1B = 0x00; //关定时器
TCNT1H = 0xF0; //设置定时初值
TCNT1L = 0xBE;
OCR1AH = 0x0F;
OCR1AL = 0x42;
OCR1BH = 0x0F;
OCR1BL = 0x42;
ICR1H = 0x0F;
ICR1L = 0x42;
TCCR1A = 0x00;
TCCR1B = 0x04; //开始计数
TIMSK = 0x04; //timer interrupt sources
SEI();
}
#pragma interrupt_handler timer1_ovf_isr:15
void timer1_ovf_isr(void)
{
TCNT1H = 0xF0; //重新装载计数值
TCNT1L = 0xBE;
if(temp){
g_ucLedStatus=0x00;
PORTF = g_ucLedStatus;
temp=0;
}else{
g_ucLedStatus=0xff;
PORTF = g_ucLedstatus;
temp=1;
}
//TimerCnt++;
}
/*#pragma interrupt_handler timer1_overflow:15
void timer1_overflow(void)
{
// preset again TIMER1
TCNT1=0x10000-(xtal/1024/fmove);
g_ucLedStatus=0x00;
PORTF=g_ucLedStatus;
}*/
/*1.必须在读取UDR 寄存器之前访问状态标志位。否则将丢失错误状态。
2.USART 支持4 种模式的时钟: 正常的异步模式,倍速的异步模式,主机同步模式,以及从机同步模式。
3.使用模式波特率的计算公式(1) UBRR 值的计算公式
异步正常模式(U2X = 0)
UBRR 值的计算公式 fOSC / (16*BAUD)-1
BAUD 波特率 ( bps)
fOSC 系统时钟频率
UBRR UBRRH 与UBRRL 的数值 (0-4095)
*/
/*
void Time1Init()
{
// init TIMER1
// TIMER1 is disconnected from pin OC1
// no PWM
TCCR1A=0;
// TIMER1 clock is xtal/1024
TCCR1B=5;
// preset TIMER1
TCNT1=0x10000-(xtal/1024/fmove);
// clear TIMER1 interrupts flags
TIFR=0;
// enable TIMER1 overflow interrupt
TIMSK=0x80;
// all other interrupt sources are disabled
CLI();
// global enable interrupts
SEI();
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -