文件组成:测试程序
/* *****************************************
* File name: main.c
* Function: 8位定时器溢出中断方式测试程序
* Description: 定时器控制LED以500ms间隔闪烁
* Author & Date: Joshua Chan, 2012/03/24
* *****************************************/
#include
#include
#include
#include
#include
#include "timer_8bit_test1.h"
/* 利用timer0溢出中断控制LED每500ms间隔亮灭 */
void main(void)
{
set_pb0_output();
timer0_ovf_init();
_SEI(); /* 全局中断使能 */
while (1)
_WDR();
}
/* *****************************************
* File name: timer_8bit_test1.h
* Function: 8位定时器溢出中断方式测试程序
* Description: 定时器控制LED以500ms间隔闪烁
* Author & Date: Joshua Chan, 2012/03/24
* *****************************************/
#ifndef _TIMER_8BIT_TEST1_H
#define _TIMER_8BIT_TEST1_H
/* 配置8位定时器timer0溢出中断使能 */
extern void timer0_ovf_init(void);
/* 配置LED管脚为输出 */
extern void set_pb0_output(void);
/* LED亮 */
extern void set_pb0_low(void);
/* LED灭 */
extern void set_pb0_high(void);
/* 检测LED状态 */
extern unsigned char pb0_is_high(void);
#endif
/* ***************************************** * File name: timer_8bit_test1.c * Function: 8位定时器溢出中断方式测试程序 * Description: 定时器控制LED以500ms间隔闪烁 * Author & Date: Joshua Chan, 2012/03/24 * *****************************************/ #include#include #include #include #include #include "timer_8bit_test1.h" /* 配置8位定时器timer0溢出中断使能 */ void timer0_ovf_init(void) { TCCR0 |= 0x07; /* 预分频 1024 */ TIMSK |= 0x01; /* 溢出中断使能 */ TCNT0 = 0x64; /* 中断发生间隔 ((0xFF-0x64)+1)*1024*(1/16.0MHz)*1000 = 10ms */ } /* 配置LED管脚为输出 */ void set_pb0_output(void) { DDRB |= 0x01; } /* LED亮 */ void set_pb0_low(void) { PORTB &= ~(0x01); } /* LED灭 */ void set_pb0_high(void) { PORTB |= 0x01; } /* 检测LED状态 */ unsigned char pb0_is_high(void) { return (PORTB & 0x01); } /* 定义timer0溢出中断处理函数 */ #pragma vector = TIMER0_OVF_vect __interrupt void timer0_isr(void) { static volatile unsigned char count = 50; TCNT0 = 0x64; /* 溢出中断处理函数中需对TCNT0值从新设置 */ if (!(--count)) { count = 50; if (pb0_is_high()) set_pb0_low(); else set_pb0_high(); } }
上一篇:编程点滴:8位AVR定时器比较匹配中断测试程序
下一篇:编程点滴:AVR外部中断测试程序
推荐阅读最新更新时间:2024-03-16 15:16
设计资源 培训 开发板 精华推荐
- 【EEWORLD带你DIY】数字示波器V2.0火热进行中......
- 泰克WiFi预一致性测量方案介绍会 填问卷 赢好礼
- ST SensorTile物联网开发套件来啦!免费申请抢鲜体验等你来~
- 【投票跟帖有礼】原厂的翻新仪器怼市场上的二手仪器,你顶谁?
- 有奖技术直播:Keysight量子计算测量方案线上研讨会
- 开启Altera SoC体验之旅,玩转Altera Cyclone V系列SoC
- TE Connectivity 提供更懂你的连接解决方案
- 深入东芝参考设计库:夯实您的设计库,让您的设计更出彩
- 有奖直播 | 同质化严重,缺乏创新,ST60毫米波非接触连接器,赋予你独特的产品设计,重拾市场话语权