完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
路过的大神,已经设置了标志位,为什么每一次进中断都会执行中断里边的while循环呢,求解
#include "config.h" #include ***it charge=P3^3; ***it stimulate=P3^0; u8 x; u8 count=0; #define CMPEN 0x80 //CMPCR1.7:比较器模块使能位 #define CMPIF 0x40 //CMPCR1.6:比较器中断标志位 #define PIE 0x20 //CMPCR1.5:比较器上升沿中断使能位 #define NIE 0x10 //CMPCR1.4:比较器下降沿中断使能位 #define PIS 0x08 //CMPCR1.3:比较器正极选择位 #define NIS 0x04 //CMPCR1.2:比较器负极选择位 #define CMPOE 0x02 //CMPCR1.1:比较器结果输出控制位 #define CMPRES 0x01 //CMPCR1.0:比较器比较结果标志位 #define INVCMPO 0x80 //CMPCR2.7:比较结果反向输出控制位 #define DISFLT 0x40 //CMPCR2.6:比较器输出端0.1us滤波控制位 #define LCDTY 0x3F //CMPCR2.[5:0]:比较器输出的区抖时间控制 /*初始化IO口*/ void GPIO_config(void) { P5M1=0x30; //设置P55高阻态 P5M0=0x00; P3M1=0x00; //设置P33推挽输出 P3M0=0x09; //设置P30推挽输出 } . . . . /******************** 主函数 **************************/ void main(void) { GPIO_config(); CMPCR1=0xB0; //配置比较器控制寄存器 CMPCR2=0; EA=1; while(1) { stimulate=1; Delay3ms(); stimulate=0; Delay3ms(); } } /*比较器中断*/ void CMP_Isr() interrupt 21 using 1 { u8 y=0; count=count+1; CMPCR1=0xBF; //清完成标志 while(count==2) { if(y<150) { for(x=0;x<200;x++) { charge=1; Delay3ms(); charge=0; Delay5ms(); } if(x==200) { x=0; } y++; } if(y==150) {count=0;} } } |
|
相关推荐
5个回答
|
|
自己先占一楼啊。
|
|
|
|
只要count不为0,当然会进入while循环,改if(count==2)试试
|
|
|
|
顶一个~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
首先第一点,你这个中断一旦进入基本上就跳不出来,你这个当第一次count==2时,进入了while,就跳不出来了,你确实可以改成if,
第二点,我不清楚你这个中断是多长时间进入一次的,你这一个中断程序里面大概要执行8ms*200+,时间是不是有点长 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 18:24 , Processed in 0.674096 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号