完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大神,如果我用STC90C516RD的单片机,默认的中断优先级,单独跑两个定时器中断,都OK,两个定时器一起跑就有问题了,定时器0中断正常的,定时器1中断却像没有执行一样,这是为什么?两个定时器服务程序对换也是定时器0没问题,定时器1像没有执行一样。
|
|
相关推荐
8个回答
|
|
卡爆了!定时器0定时10us太短了,进入中断执行都超过10us,之后中断又来了,如此循环,定时器1根本进不了中断,因为低优先级无法打断高优先级。解决办法就是使定时器0中断时间长一些,或者进入中断时先关闭中断,退出时再打开
最佳答案
|
|
|
|
贴出程序出来看看!
|
|
|
|
定时器1设置不对
|
|
|
|
void init_timer(void)
{ //AUXR &= 0xBF; //定时器时钟12T模式 TMOD = 0x11; //设置0定时器模式1 TH0 = 0xFF; //设置定时初值 TL0 = 0xF6; //设置定时初值 10US TF0 = 0; TH1 = 0xFC; //设置定时初值 TL1 = 0x66; //设置定时初值 1mS TF1 = 0; ET1 = 1; ET0 = 1; EA = 1; TR0 = 1; TR1 = 1; } void key_scan(void)//按键扫描 { key=1; if(key==0) { delay_nms(15); if(key==0) { key_flag=1; } } } void main(void) { init_timer(); //初始化定时器 Init_BH1750(); //初始化BH1750 Delay10ms(2); Single_Write_BH1750(0x42); Single_Write_BH1750(0x65); //设置透光率100% /////////////////////////////////////////////////////////////// while(1) { key_scan(); if(flag_BH==1) { flag_BH=0; Single_Write_BH1750(0x01); // power on Single_Write_BH1750(0x10); // H- resolution mode BH_flag=1; } if(flag_key==1) { PWM=0; bh1750_con=1; } else { bh1750_con=0; } } } /////////////////////////////////////////////////////////// void timer0()interrupt 1 { TH0=FF; TL0=F6; n++; if(n==100) { n=0; ; led=0; j++; } if(j==200) { j=0; if(flag_key==0) { if(Data>15&&PWM<100) { PWM=PWM+1; } else if(Data<5&&PWM>0) { PWM=PWM-1; } } } //if(PWM==0) con_l=1; if(PWM==n) { led=1; //输出高 } } //PWM越大,占空比越小 /////////////////////////////////////////////////////////////// void timer1()interrupt 3 { TH1=FC; TL1=66; if(key_flag==1) { i++; if(key==1) { delay_nms(5); if(key==1) { if(i<=100) flag_key=1; else if(i>100) flag_key=0; i=0; key_flag=0; } } } if(BH_flag==1) { BH_c++; if(BH_c==180) { BH_c=0; Multiple_Read_BH1750(); //连续读出数据,存储在BUF中 Data=BUF[0]; Data=(Data<<8)+BUF[1];//合成数据,即光照数据 Data=(uint)(Data/1.2); dif=abs(Data-10); BH_flag=0; flag_BH=1; } } } |
|
|
|
我再问一下,如果用1T的单片机会不会好点? |
|
|
|
太好了,记下了慢慢研究
|
|
|
|
果真如5l大神所言,10us的定时加长以后就OK了!
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
imx6ull裸机编程,使用宏定义无法驱动,使用指针就可以驱动
434 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十二章 音频FFT实验
297 浏览 0 评论
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
1266 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
1603 浏览 1 评论
1589 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11614 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 16:15 , Processed in 1.563001 second(s), Total 55, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号