Y_G_G 发表于 2021-8-30 15:20 大哥请问下仿真的时候掉电后无法通过外部中断1唤醒是什么情况呀 |
Y_G_G 发表于 2021-9-3 23:04 好的,谢谢! |
一夜暴富 发表于 2021-9-3 19:34 看不到完整程序和电路,不知道你要做什么 这个是我一个蓝牙耳机的,长按或者双击唤醒的,按键和其它函数,你可以先不管,你大概看一下唤醒的流程就可以了 void main(void) { Mcu_Rst(); //单片机复位 Mcu_Awaken(); //单片机唤醒操作 Stc8g_Adc_int();//stc8gadc初始化 Tap6130_Start(); //耳放启动 //——————————————————————————————————————————————————————————————————— while(1) { if((USB==1)||(ON==1)) Battry_Voltage_Disp(ADC_VCC); //电池电压处理 if((USB==0)&&(ON==1)) Key_Disp(); //按键处理 if((TWO_PRE==1)||(LONG_PRE==1)) { ON=!ON; //长按/双击有效 TWO_PRE=0; LONG_PRE=0; Mcu_Up=0; //清除按键唤醒标志位 if(ON==1) { Delay_ms(300); //延时一定时间开机,没有为什么,就是达到某个效果而已,可有可无 Tap6130_Start(); //如果是按键开机,就启动耳放和蓝牙 Stc8g_Adc_int(); //stc8gadc初始化 } } else if(ONE_PRE==1) { ONE_PRE=0; //单击有效 Mcu_Up=0; if(ON==1)Play(); //播放/暂停/接听/挂断 } else if((USB==0)&&(ON==0)&&(Mcu_Up==0)) //UBS在插着,就不关机 { Delay_ms(300); //延时0.3秒关机 Mcu_Sleep(); //单片机进入掉电模式 PCON=0x02; //进入掉电模式 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Mcu_Awaken(); //单片机唤醒 if(USB==1)Stc8g_Adc_int(); //如果USB高电平,就表示是USB播放,stc8gadc初始化 } } //——————————————————————————————————————————————————————————————————— } |
Y_G_G 发表于 2021-9-1 11:30 不知道大佬能否再帮我解答一下 我是在唤醒中断里写了唤醒后单片机该做什么 而不是写在 PCON = 0x02; _nop_; _nop_; _nop_; _nop_; 的后面。 请问这样是可以的吗 |
一夜暴富 发表于 2021-9-1 10:38 这个不好说,要结合实际情况的 你看一下数据手册有没有说明的 如果数据手册没有说明,理论上输出就应该是0V,你就要看一下你硬件电路了 |
Y_G_G 发表于 2021-8-31 20:50 好的,谢谢~还有最后一个问题 为什么我给lm2596使能脚高电平,让它停止工作 理应VOUT应该0V左右,但每次关闭后的电压都不同,从0.050V~2V左右都有 这是为什么呢,电路就是上面的电路 |
PEB188 发表于 2021-8-31 18:10 去抖动是肯定要的 如果程序没有什么其它任务,肯定是直接在中断中放一个延时省事了 如果有多重任务的话,肯定是不能在中断中有长延时,比如有数码管显示的时候,只要是在中断中有延时,哪怕只有1mS,人眼也能感觉到数码管闪了一下 如果在中断中有等待松开的话,就更不用说了,数码直接就是长亮一位或者长暗 |
一夜暴富 发表于 2021-8-31 10:02 我的回答已经说了你想要的知道的知识点了 |
Y_G_G 发表于 2021-8-30 16:44 外部中断里按键需要消抖吗及松手等待吗 |
Y_G_G 发表于 2021-8-30 22:10 恩,就是DC-DC比较好使能控制,所以一直想用DC-DC 但如果LDO本身的工作电流就很低的话,我也是倾向于用LDO更方便的。 还想请教一下,那我是选择12V降5V的LDO合适,还是3.7V升5V的升压电路 ,这两个哪个功耗会更低一些? |
只要配置和电路没问题那就是程序的问题,另外中断里竟然调用delay(),不能啊!oled_wr_byte()也不要放外部中断里面吧,不要问为什么,我也不懂! |
一夜暴富 发表于 2021-8-30 18:54 为什么对5V的DC-DC如此执着呢?这5V你要输出多大的电流?带马达吗? 如果只是单片机和传感器供电,直接一个HT7350不就行了吗? 如果是要大电流,3.7直接升压5V效率不是更高的吗?3.7升12V的效率如果是90%,12降到5V又是90%的效率,那么整个电路的效率就是80%左右了......... |
本帖最后由 一夜暴富 于 2021-8-30 19:00 编辑 Y_G_G 发表于 2021-8-30 16:44 谢谢大佬的指导,不知道大佬能否推荐一些低功耗的DC-DC 12v降压5V的芯片 |
补充一下:5V的使能引脚关闭后 5V的电压每次都不同 当5V的降压使能引脚关闭后,最后停在了2V,就可以正常唤醒 如果5V的降压使能引脚关闭后只有0.3V了,就不能正常唤醒了 |
1,不要在中断函数中设定或者使用Delay()长时间延时,没有办法的情况下才会在中断中使用,如果可以的话,中断函数尽可能的短 2,在PCON=0x02;之后至少要加四个 _nop_ (); 不知道为什么,官方叫这么做,你就这么做,错不了 3,进入掉电之前,你要用的唤醒中断都要先设定 4,中断唤醒之后,程序会执行PCON=0x02;之后的代码,由于没有看到完整的代码,不知道你程序是怎么跑的,这STC唤醒压根就不是什么高深技术或者商业机密,大可上传代码文件,你截个图,没头没尾的 5,一定要P00=0;P01=0.....吗?难道不成P0=0x00吗? 6,听说现在STC15可以仿真,你可以搞个仿真电路,也许论坛有人会玩,反正我只对开发板感兴趣 |