完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
配置两个定时器,定时器0定时0.2ms ,定时器1定时20ms,在没有写入ADC及中断之前两个定时器正常工作,但是加了ADC以后,就不能进入定时器1的中断。不懂是什么问题?求各路神仙解救~
void timer0_Init() { TIMER0_MODE1_ENABLE; clr_T0M; //设置定时器0为系统时钟的12分频 u8TH0_Tmp = (65536-TH0_INIT)/256; u8TL0_Tmp = (65536-TL0_INIT)%256; TH0 = u8TH0_Tmp; TL0 = u8TL0_Tmp; set_ET0; //开启 Timer0 中断 set_EA; //开启 总中断 set_TR0; } void Timer1_Init(void) { TIMER1_MODE1_ENABLE; clr_T1M; u8TH1_Tmp = (65536-TH1_INIT)/256; u8TL1_Tmp = (65536-TL1_INIT)%256; TH1 = u8TH1_Tmp; TL1 = u8TL1_Tmp; set_ET1; //enable Timer1 interrupt set_EA; set_TR1; //Timer1 run } /************************************************************************************************************ * TIMER 0 interrupt subroutine ************************************************************************************************************/ void Timer0_ISR (void) interrupt 1 //interrupt address is 0x000B { clr_TF0;//清除中断标志位 TH0 = u8TH0_Tmp;//重装初值 TL0 = u8TL0_Tmp; // Start_PWM(); ZT_PreChCount(); ADCProcess(); } void Timer1_ISR (void) interrupt 3 //interrupt address is 0x001B { clr_TF1; TH1 = u8TH1_Tmp; TL1 = u8TL1_Tmp; PowerCnt++; LedCnt++; if(LedCnt>0x20) { LedCnt=0; LED_Spark_Process(); } KeyCatch(); } void ADCInit(void) { Enable_ADC_AIN2; clr_ADCF; // ADCF = 0 AD转换未完成 set_EADC;//使能ADC中断 EA = 1; set_ADCS; //启动AD转换 iCheckCH0=0; LostCnt=0; // while(ADCF == 0); // set_EADC; } void ADC_ISR (void) interrupt 11 { if(ADCF) { clr_ADCF;//清除ADC转化完成标志,进行下一次转换 set_ADCS;//当单次转换完成后,ADCS会硬件置0,需要重新使能 ADCResult=(UINT16)(ADCRH & 3); ADCResult = (ADCResult << 8) | ADCRL; } } |
|
相关推荐
1个回答
|
|
可能是因为ADC中断优先级高于定时器1中断的优先级,导致定时器1中断被屏蔽了。可以尝试降低ADC中断的优先级,或者在ADC中断处理程序中及时清除定时器1的中断标志位。同时,需要确保定时器0和定时器1的中断向量地址没有重叠,否则也会影响定时器1中断的触发。
|
|
|
|
只有小组成员才能发言,加入小组>>
3208 浏览 9 评论
2895 浏览 16 评论
3401 浏览 1 评论
8840 浏览 16 评论
3994 浏览 18 评论
9625浏览 3评论
998浏览 3评论
518浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
521浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2244浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 07:42 , Processed in 0.932750 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号