⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer0int.c

📁 利用AVR单片机Mega16的定时器0的溢出中断实现2.5KHz的方波
💻 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 + -