📄 timer0int.c
字号:
/*******************************************
文件:TIMER0INT.C
环境:编译为ICC AVR6.25A,仿真为AVR Studio4.10
硬件:ATMEGA16芯片
日期:2006年12月10日
功能:实现MEGA16的TIMER0的溢出中断
备注:参考《AVR系列单片机C语言编程与应用实例》(清华大学出版社)
/******************************************/
#include <iom16v.h> //包含型号头文件
#include <macros.h> //包含"位"操作头文件
#include <stdio.h> //标准输入输出头文件
#include <AVR_PQ1A.h> //包含自定义常量头文件
#pragma interrupt_handler Timer0:10
/*******************************************
函数名称: Timer0_init
功 能: Timer0初始化
参 数: 无
返回值 : 无
/********************************************/
void Timer0_init(void)
{
TCCR0|=0x03; //普通计时模式,普通端口操作,预分频为64
TCNT0=231; //频率为2.5KHz
SREG|=BIT(7); //开放全局中断
TIMSK|=BIT(TOIE0);//开放TIMER0溢出中断
DDRA|=BIT(PA0); //配置PA0引脚为输出
}
/*******************************************
函数名称: Timer0
功 能: Timer0的溢出中断服务函数
参 数: 无
返回值 : 无
/********************************************/
void Timer0(void)
{
TCNT0=231; //重新赋初值
PORTA^=0X01; //取反PA0引脚,输出2.5KHz的方波
}
/*******************************************
函数名称: main
功 能: 完成初始化,等待TIMER0中断
参 数: 无
返回值 : 无
/********************************************/
void main(void)
{
Board_init( ); //初始化开发板
Timer0_init(); //初始化定时器0
while(1) //等待中断
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -