1、 先暂时软件处理-1次。可以解决。但还得追究根本原因;三、措施对策复制代码
- void BOOT() //总初始化 最简整理221215; (STC8G1K08)
- {
- dl_ms(100); //上电适当延时一下好些;
- P1M1=P5M1=0x00, P1=P5=0xff, //P1P5口:均设双向置1; 其他默认;
- P3M1=0x0C; P3 |=0xf3; //P3 口:P32按键、P33脚都是边沿中断设高阻不置1,其余双向置1;
- status=Kc= 0; //初值: status工作状态标志 (开机0/待机1/复位2), Kc短按次数);
- G=R=b=W=0, dl_ms(1000); //开机/复位后: 绿红蓝白灯 全亮1s灭1s;
- G=R=b=W=1, dl_ms(1000); // 问题发现: 以上3行放最后面编译代码少1B;奇怪?
- P_SW2 |= 0x80; //访问XSRF先BIT7=1; 统一放前无需归零(有外扩64K扩展RAM时才要);
- P3IE=0x0C, P1IE=0x00, P5IE=0x20; //输入只留P32、P33、P55(其余全关);
- //P55控制大灯W(用到if W==1读端口还是读引脚?先不关);
- P3PU=0x04; //使能内部上拉电阻;
- TMOD= 0x01; //T0:模式01;16位不自动重载(默认12T);消抖用的查询方式;
- EX0=EX1=EA =1; //开中断;
- }
188610329 发表于 2022-12-21 16:07
要先开上拉,再清 IE0,IE1, 最后, 再开中断。
coody_sz 发表于 2022-12-21 16:51
上电时INT0已经检测到一次上升沿,所以你一允许外部中断,立刻进去中断。
正确的初始化应该是:每次允许外 ...
wulin 发表于 2022-12-21 21:16
代码书写不规范所致。
Y_G_G 发表于 2022-12-21 21:38
代码一段一段的,也不知道你要干嘛
P3端口要读取外部电平,必需 P3 = 0xff
wufa1986 发表于 2022-12-22 08:51
不用探讨,任何外部中断开启前都要清理标记位
wufa1986 发表于 2022-12-22 08:51
不用探讨,任何外部中断开启前都要清理标记位
ax6808 发表于 2022-12-25 13:19
前面补充上传了长短按及充电状态监控中断服务代码, 最后都回主函数主循环处理(较简单,未贴出代码)
目前总 ...
ax6808 发表于 2022-12-25 13:13
外部中断0的中断标志位必须由(硬件) 清零。
Y_G_G 发表于 2022-12-25 14:23
这种程序,最好是上传工程文件,想必也不是什么商业机密
人家有条件的,可以直接下载打开
代码不全,很难看 ...
ax6808 发表于 2022-12-25 22:32
感谢批评指正!老射频工程师,才搞嵌入式一年多,个人经验不足,有些基本功能还在逐步探索应用中,没有任 ...
wufa1986 发表于 2022-12-22 08:51
不用探讨,任何外部中断开启前都要清理标记位
Y_G_G 发表于 2022-12-26 22:50
我并没有非常认真的看你的程序,只是大概的看了一下
但我还是认为:很多时候,问题出在人身上,或者是说单片 ...
kmsj 发表于 2022-12-28 15:19
我的一些程序,经常在STC和AVR之间移植过来移植过去,就发现STC单片机只要把端口设置为推挽输出,端口立即 ...
kmsj 发表于 2022-12-28 15:19
我的一些程序,经常在STC和AVR之间移植过来移植过去,就发现STC单片机只要把端口设置为推挽输出,端口立即 ...
Y_G_G 发表于 2022-12-29 19:52
个人玩的东西,我还是很喜欢STC的单片机的,当然,就功能而言,还是更喜欢STM32,用STM32很多时候压根就用考虑 ...
coody_sz 发表于 2022-12-31 17:36
那是因为你不熟悉51架构造成的。51架构的MCU出现与上世纪80年代初,复位后准双向口输出高电平,后来的808 ...
1261867136qq 发表于 2023-1-3 08:55
感觉~好高端的问题
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |