完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
程序说明,定时器0按工作模式1工作,初值为10ms。
#include "N76E003.h" #include "SFR_Macro.h" #include "Function_define.h" #include "Common.h" #include "Delay.h" UINT8 u8TH0_Tmp,u8TL0_Tmp; //初始化配置函数 void Init_Timer0(void) { CKDIV=0X0C; TIMER0_MODE1_ENABLE; //Timer 0 and Timer 1 mode configuration clr_T0M; u8TH0_Tmp =TIMER_DIV12_VALUE_10ms>>8; //12分频初值 u8TL0_Tmp =TIMER_DIV12_VALUE_10ms; // TH0 = u8TH0_Tmp; TL0 = u8TL0_Tmp; set_ET0; //enable Timer0 interrupt set_EA; //enable interrupts set_TR0; //Timer0 run CKDIV=0X00; } void main (void) { Init_Timer0(); //定时器0初始化 while(1) { //填入你的代码 } } //-------定时器0中断服务程序--------- void Timer0_isr(void) interrupt 1 { //重装初值 TH0 = u8TH0_Tmp; TL0 = u8TL0_Tmp; time_ms++; if(time_ms>=1000) //时间定时10s测试,初值10ms { //填入你的代码 } } |
|
相关推荐
1个回答
|
|
sp; TH0=(65536-10000)/256;//定时器初值高字节为0x27,设置为10ms TL0=(65536-10000)%256;//定时器初值低字节为0x10,设置为10ms u8TH0_Tmp=TH0; u8TL0_Tmp=TL0;}void main(void){ Init_Timer0();//初始化定时器0 while(1){ while(TF0==0);//等待定时器溢出 TF0=0;//清除定时器溢出标识位 TH0=u8TH0_Tmp;//重新设置定时器初值高字节 TL0=u8TL0_Tmp;//重新设置定时器初值低字节 //执行定时任务 }}
这是一个使用N76E003定时器0的程序,定时器0按工作模式1工作,初值为10ms。程序的主要实现过程如下: 1. 定义了两个全局变量,用来存储定时器初值的高字节和低字节。 2. 编写了一个初始化配置函数,用来初始化定时器0的工作模式、时钟分频、定时器初值等参数。 3. 在主函数中调用初始化函数进行初始化操作,然后进入一个无限循环。 4. 在循环中使用一个while循环,等待定时器溢出标志位TF0变为1。 5. 当TF0变为1时,清除该标志位,并重新设置定时器的初值为程序中定义的初值。 6. 进行定时任务的处理,然后重新进入while循环等待下一个定时器溢出。 需要注意的是,这个程序中使用了N76E003的特殊寄存器和头文件,如果要在其他平台上使用可能需要适当修改。 |
|
|
|
只有小组成员才能发言,加入小组>>
3254 浏览 9 评论
2934 浏览 16 评论
3438 浏览 1 评论
8940 浏览 16 评论
4030 浏览 18 评论
1068浏览 3评论
555浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
549浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2284浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1842浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-4 11:19 , Processed in 1.101970 second(s), Total 82, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号