完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
7020能不能使用多个定时器中断?开发板上给了例程但似乎不能运行。
下面是截取了一部分的例子。将IRQEN定义给tiMER? void Timer0Init(void) { T0LD=163200/128-1; // 1/128秒中断一次 T0CON=0xC8; // Enable Timer0; Periodic mode; FCoreClock/256=163200Hz FIQEN |=TIMER0; //TIMER0中断分配为FIQ } 然后头文件里定义了timer? #define TIMER1 (1<<3) #define TIMER2 (1<<4) 在调用定时器中断时候判断来自于哪个定时器 if(IRQSTA TIMER1) //Timer0中断.每24小时中断一次 { T1CLRI=0; //清中断 // RealDate.Day++; return; } 请问为何这样的写法不可以?如果想在一个程序里使用多个定时器中断要怎么写? |
|
相关推荐
1个回答
|
|
|
ADuC7020是ADI公司推出的低功耗8位微控制器,可以使用多个定时器中断。根据你提供的代码,似乎可以使用定时器0的中断。如果你想使用其他定时器中断(如定时器1),需要做以下步骤:
1. 在头文件中添加定时器1和定时器2的定义: ``` #define TIMER1 (1<<4) #define TIMER2 (1<<5) ``` 2. 在Timer1Init()和Timer2Init()函数中分别初始化定时器1和定时器2,设置相应的定时器寄存器。 3. 在中断控制寄存器IRQEN中启用定时器1和定时器2的中断: ``` IRQEN |= TIMER1; IRQEN |= TIMER2; ``` 注意:根据ADuC7020数据手册,定时器0、定时器1和定时器2的中断都可以配置为中断模式(Periodic mode)。在FIQEN寄存器中设置相应的位来分配中断请求(IRQ)。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
112 浏览 0 评论
219 浏览 0 评论
721 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
702 浏览 0 评论
有人有STM8H1K08T连接TM1650的源码吗,可以直接使用的那种,我的代码在烧录之后数码管一直处于熄灭状态
1036 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16968 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 04:21 , Processed in 0.868923 second(s), Total 39, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2150