/***************************************************************************/
/*定时器T0测试程序 */
/*目标器件:ATmega128 */
/*晶振:RC 8MHZ */
/*编译环境:ICCAVR 6.31A */
/*E-Mail:number007cool@163.com */
/*时间:2010年03月04日 */
/***************************************************************************/
/*********************************包含头文件********************************/
#include
#include
/**********************************全局变量*********************************/
int k;
/****************************************************************************
函数功能:端口初始化程序
入口参数:
出口参数:
****************************************************************************/
void port_init (void)//初始化对573的控制,使输出信号可以直接控制led的亮暗
{
DDRA=0XFF;
PORTA=0XFF;
DDRE|=1<<2;
PORTE=1<<2;
}
/****************************************************************************
函数功能:定时器初始化程序
入口参数:
出口参数:
****************************************************************************/
void timer0_init(void)
{
TCCR0 = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT0 = 0x3c; //setup 0.2s
//TCNT0=0X00;
OCR0 = 0x00;
TCCR0 = 0x05; //1024分频
}
/****************************************************************************
函数功能:定时中断服务程序
入口参数:
出口参数:
****************************************************************************/
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
TCNT0 = 0x3c;
//TCNT0=0x00;
k=k+1;
if(k>100)
{
k=0;
PORTA ^= 0xFF;
}
}
/****************************************************************************
函数功能:主程序
入口参数:
出口参数:
****************************************************************************/
void main (void)
{
CLI(); //disable all interrupts
port_init();
timer0_init();
MCUCR = 0x00;
TIMSK = 0x01; //T0溢出使能
SEI(); //enable interrupts
}
阅读(3037) | 评论(0) | 转发(0) |