历史上的今天
今天是:2025年02月25日(星期二)
2020年02月25日 | AVR应用笔记二(定时器0溢出中断)
2020-02-25 来源:eefocus
简介:本文主要为关于定时器0溢出中断的程序处理。
//---------------------------------------------------------------------
//Copyright(c) 博控设计joecongmin 2010 All righr reserved
//文件名:timer0_test1.c
//文件描述:用定时器1完成100US定时,一秒钟到后取反PC1口
//外接的LED灯,实现LED灯的闪烁。
//实验目的:学习AVR 单片机的定时器0用作定时器用的方法
//当前版本号:V1.0
//完成时间:2010-4-7 13:02:45
//修改记录:
//修改时间:
/起草时间:2010-4-7 8:45:01
//--------------------------------------------------------------------
//----------------------------start------------------------------------
#include"iom88v.h"
#define uint16 unsigned int
#define uchar unsigned char
void delay (uint16 i);
void flash_led(void);
void timer0_init(void);
uchar timer_cnt = 0;//定时器1计数个数
void main(void)
{
DDRC |= 0x02; //PC1 output
timer0_init();
while(1)
{
//flash_led();
}
}
//-------------------------------------------------------------------
//函数原型:void delay (uint16 i);
//入口参数:uint16 i:延时变量
//出口参数:无
//功能:实现延时功能
//-------------------------------------------------------------------
void delay (uint16 i)
{
uchar j;
while(i--)
{
for(j=125;j>0;--j)
{
;
}
}
}
//--------------------------------------------------------------------
//
//功能:非定时下实现LED灯的闪烁
//--------------------------------------------------------------------
void flash_led(void)
{
PORTC |= 0x02; //PC1 = 1;
delay(3000);//
PORTC &= 0xfd; //PC1 = 0;
delay(3000);//
}
/*-----------------------------------------------------------------
函数名称: void timer0_init(void)
函数功能: 定时器0初始化 256预分频 定时一秒
参 数:
返 回 值: 无
-----------------------------------------------------------------*/
void timer0_init(void)
{
TCCR0A &= 0xfc; //11111100
TCCR0B = 0x05; //1024分频
SREG |= 0x80; //全局中断使能
TIMSK0 =0x01; // 定时器0溢出中断使能
}
//--------------------------------------------------------------------
//
//
//定时器0中断服务子程序,工作在普通计数模式1024分频,初值为0每256拍溢出
//中断频率 8000000/1024/256 =30.5HZ
//-------------------------------------------------------------------
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
timer_cnt++;
if(timer_cnt>=15)//30.5HZ 15分频 =2HZ即亮0.5秒灭0.5秒
{
timer_cnt = 0;
if((PORTC &= 0x02)==0x02)
PORTC &= 0xfd; //PC1 = 0;
else
PORTC |= 0x02;
}
}
史海拾趣
|
LSI 急招Physical Design Engineer Please send your resume to China.Recruiting@lsi.com DESCRIPTION OF DUTIES IN ADDITION TO THOSE IN JOB DESCRIPTION: - Duties will include working within a Product Development Team to work on leading edge ASIC solutions in fu ...… 查看全部问答> |
|
最 常用的编译版本是arm-linux-gcc-3.4.1 和 arm-linux-3.3.2 的,现在的嵌入式开发基本上用的是这些,3.4.1的用于编译2.6的内核,而3.3.2的常用于编译busybox,和bootloader(u- boot),编译的版本配合不好的话就会出错,所以要选择好编译版本,如果 ...… 查看全部问答> |
|
做好30岁前的职业规划 世界500强不一定是最好的,适合的才是最好的。 首先我们要讨论的是,选择外资企业还是选择内资企业。本人认为要结合自身情况权衡利弊,任何一件事都有好的一面和不好的一面,同时任何决定都必须要有前提。 去外 ...… 查看全部问答> |
|
WINCE系统跑起来后,通过AP更新NBOOT+EBOOT+NK,怎么处理TOC,MBR的改变,要不要去调用BP_XXX( )那些函数接口? WINCE系统跑起来后,通过AP更新NBOOT+EBOOT+NK,怎么处理TOC,MBR的改变,要不要去调用BP_XXX( )那些函数接口?… 查看全部问答> |
|
我们浏览网页必然需要浏览器,所以一个好的浏览器是至关重要的,可以保证我们浏览器网页、看视频、玩游戏的流畅和清晰。之前看到说Firefox和chrome都支持GPU硬件加速,前段时间发布的IE9Beta版据说也对GPU加速和Html5有着很好的支持,不知道效 ...… 查看全部问答> |




