历史上的今天
返回首页

历史上的今天

今天是: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;

}

}


推荐阅读

史海拾趣

AEL [AEL Crystals Ltd]公司的发展小趣事

随着业务的不断发展,AEL Crystals意识到全球化战略的重要性。公司开始在全球范围内寻找合适的生产基地,并在英国、日本、台湾、韩国等地区建立了生产基地网络。这一战略布局使得AEL Crystals能够更好地满足全球客户的需求,同时也降低了供应中断的风险。

ACEINNA公司的发展小趣事

AEL Crystals Ltd公司成立于1960年,最初专注于石英频率控制元件的研发与生产。在创立初期,公司面临着技术挑战和市场竞争的双重压力。然而,凭借创始人的远见卓识和团队的不懈努力,AEL Crystals逐渐在石英频率控制领域站稳了脚跟。公司通过持续改进生产工艺和提高产品质量,逐渐赢得了客户的信任和支持。

科达嘉CODACA公司的发展小趣事

科达嘉电子高度重视质量管理,先后通过了ISO9001质量管理体系、ISO14001环境管理体系认证。公司不仅建立了完善的质量检测流程,还成立了专门的检测中心,对产品进行严格的质量把控。这些措施确保了科达嘉电子产品的稳定性和可靠性,进一步提升了公司在市场上的竞争力。

Hong Kong X'Tals Ltd公司的发展小趣事
在必要时,可以加入保护电路(如过流保护、过压保护等),以提高电路的可靠性和安全性。
ETERNA公司的发展小趣事

2014年,ETERNA成为了ATP世界网球巡回赛瑞士公开赛的指定合作伙伴。这一合作标志着ETERNA在品牌建设和市场推广方面取得了新的突破。通过与ATP的合作,ETERNA不仅成功地将品牌与高端体育赛事相结合,还进一步提升了品牌形象和知名度。同时,ETERNA还为赛事提供了精准的计时服务,展现了其在电子技术领域的实力。

广州盛炬(GZSJ)公司的发展小趣事

ETERNA公司起源于1856年,由格斯塔夫·罗斯切尔德和约翰·乌尔里希在瑞士的圣伊米尔创立。自成立之初,ETERNA便以精湛的制表工艺和不懈的创新精神闻名于世。公司不断推出具有划时代意义的腕表产品,其中最具代表性的是其“五点星座”设计,这一设计成为了品牌的象征,并引领了制表业的新潮流。ETERNA通过不断的技术创新和设计突破,逐渐在电子行业中崭露头角。

问答坊 | AI 解惑

华为公司-模拟电路讲义(上)

讲的挺好的,上传上来和大家一起分享!…

查看全部问答>

急求 蜂鸣器放大电路!!帮帮忙!

如图所示   哪位大侠能给给蜂鸣器放大电路!!!!非常感谢!!!!…

查看全部问答>

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工具链下载

最 常用的编译版本是arm-linux-gcc-3.4.1 和 arm-linux-3.3.2 的,现在的嵌入式开发基本上用的是这些,3.4.1的用于编译2.6的内核,而3.3.2的常用于编译busybox,和bootloader(u- boot),编译的版本配合不好的话就会出错,所以要选择好编译版本,如果 ...…

查看全部问答>

做好30岁前职业规划

做好30岁前的职业规划 世界500强不一定是最好的,适合的才是最好的。   首先我们要讨论的是,选择外资企业还是选择内资企业。本人认为要结合自身情况权衡利弊,任何一件事都有好的一面和不好的一面,同时任何决定都必须要有前提。   去外 ...…

查看全部问答>

WINCE系统跑起来后,通过AP更新NBOOT+EBOOT+NK,怎么处理TOC,MBR的改变,要不要去调用BP_XXX( )那些函数接口?

WINCE系统跑起来后,通过AP更新NBOOT+EBOOT+NK,怎么处理TOC,MBR的改变,要不要去调用BP_XXX( )那些函数接口?…

查看全部问答>

系统出现白屏

  2440 ce5.0 系统运行EVC程序,程序运行一段时间之后,有时候会出现白屏现象,而且这种现象很偶然,隔几天可能会出现一次,白屏的时候,串口也没有什么串口信息发出    这是应用程序的事呢?还是系统的事?…

查看全部问答>

找工作 -- 北京

2005年6月计算机专业本科毕业,毕业后一直在一个研究所从事软件开发:     a)参与了专业交换机研发, 我主要做交换与维护模块(c  语言+vxWorks)和交换机维护终端软件(vc 6.0)     b)做过专业网控器的组网协 ...…

查看全部问答>

三大浏览器GPU加速测试,有谁欢喜有谁愁?

  我们浏览网页必然需要浏览器,所以一个好的浏览器是至关重要的,可以保证我们浏览器网页、看视频、玩游戏的流畅和清晰。之前看到说Firefox和chrome都支持GPU硬件加速,前段时间发布的IE9Beta版据说也对GPU加速和Html5有着很好的支持,不知道效 ...…

查看全部问答>

STM32有什么方法可以控制非授权的用ISP下载程序?

                                 STM32有什么方法可以控制非授权的用ISP下载程序?…

查看全部问答>