久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 關(guān)于單片機(jī)低功耗無法喚醒的求助 [打印本頁]

作者: 一夜暴富    時間: 2021-8-30 15:20
標(biāo)題: 關(guān)于單片機(jī)低功耗無法喚醒的求助
本帖最后由 一夜暴富 于 2021-8-30 15:43 編輯

目前低功耗方案:電池3.7V單獨(dú)給單片機(jī)供電,單片機(jī)再控制引腳給①電池3.7V升壓12V電路②12V降5V電路使能,從來給12V負(fù)載和5V傳感器工作目前遇到的問題:希望通過旋鈕和按鈕喚醒,但旋鈕的喚醒非常玄學(xué),大部分情況下都不行,偶爾又可以,按鈕則時而靈時而不靈
兩個控制電路如下:

旋鈕按鈕電路如下:
控制單片機(jī)進(jìn)入低功耗代碼如下:

觸發(fā)外部中斷出低功耗代碼如下:


其中16,17是使能腳。XA XB是旋鈕引腳,P36是按鈕引腳
判斷有沒有結(jié)束低功耗是靠屏幕有沒有亮起
大部分情況下屏幕都無法亮起
或許還需要補(bǔ)充什么?
希望各位不嗇賜教

作者: Y_G_G    時間: 2021-8-30 15:20
1,不要在中斷函數(shù)中設(shè)定或者使用Delay()長時間延時,沒有辦法的情況下才會在中斷中使用,如果可以的話,中斷函數(shù)盡可能的短
2,在PCON=0x02;之后至少要加四個        _nop_  (); 不知道為什么,官方叫這么做,你就這么做,錯不了
3,進(jìn)入掉電之前,你要用的喚醒中斷都要先設(shè)定
4,中斷喚醒之后,程序會執(zhí)行PCON=0x02;之后的代碼,由于沒有看到完整的代碼,不知道你程序是怎么跑的,這STC喚醒壓根就不是什么高深技術(shù)或者商業(yè)機(jī)密,大可上傳代碼文件,你截個圖,沒頭沒尾的
5,一定要P00=0;P01=0.....嗎?難道不成P0=0x00嗎?
6,聽說現(xiàn)在STC15可以仿真,你可以搞個仿真電路,也許論壇有人會玩,反正我只對開發(fā)板感興趣
作者: 一夜暴富    時間: 2021-8-30 16:44
補(bǔ)充一下:5V的使能引腳關(guān)閉后
5V的電壓每次都不同
當(dāng)5V的降壓使能引腳關(guān)閉后,最后停在了2V,就可以正常喚醒
如果5V的降壓使能引腳關(guān)閉后只有0.3V了,就不能正常喚醒了
作者: 一夜暴富    時間: 2021-8-30 18:54
本帖最后由 一夜暴富 于 2021-8-30 19:00 編輯
Y_G_G 發(fā)表于 2021-8-30 16:44
1,不要在中斷函數(shù)中設(shè)定或者使用Delay()長時間延時,沒有辦法的情況下才會在中斷中使用,如果可以的話,中斷函 ...

謝謝大佬的指導(dǎo),不知道大佬能否推薦一些低功耗的DC-DC 12v降壓5V的芯片
作者: Y_G_G    時間: 2021-8-30 22:10
一夜暴富 發(fā)表于 2021-8-30 18:54
謝謝大佬的指導(dǎo),不知道大佬能否推薦一些低功耗的DC-DC 12v降壓5V的芯片

為什么對5V的DC-DC如此執(zhí)著呢?這5V你要輸出多大的電流?帶馬達(dá)嗎?
如果只是單片機(jī)和傳感器供電,直接一個HT7350不就行了嗎?
如果是要大電流,3.7直接升壓5V效率不是更高的嗎?3.7升12V的效率如果是90%,12降到5V又是90%的效率,那么整個電路的效率就是80%左右了.........
作者: haokey    時間: 2021-8-31 08:56
只要配置和電路沒問題那就是程序的問題,另外中斷里竟然調(diào)用delay(),不能啊!oled_wr_byte()也不要放外部中斷里面吧,不要問為什么,我也不懂!
作者: 一夜暴富    時間: 2021-8-31 10:02
Y_G_G 發(fā)表于 2021-8-30 22:10
為什么對5V的DC-DC如此執(zhí)著呢?這5V你要輸出多大的電流?帶馬達(dá)嗎?
如果只是單片機(jī)和傳感器供電,直接一個H ...

恩,就是DC-DC比較好使能控制,所以一直想用DC-DC
但如果LDO本身的工作電流就很低的話,我也是傾向于用LDO更方便的。
還想請教一下,那我是選擇12V降5V的LDO合適,還是3.7V升5V的升壓電路 ,這兩個哪個功耗會更低一些?

作者: PEB188    時間: 2021-8-31 18:10
Y_G_G 發(fā)表于 2021-8-30 16:44
1,不要在中斷函數(shù)中設(shè)定或者使用Delay()長時間延時,沒有辦法的情況下才會在中斷中使用,如果可以的話,中斷函 ...

外部中斷里按鍵需要消抖嗎及松手等待嗎
作者: Y_G_G    時間: 2021-8-31 20:50
一夜暴富 發(fā)表于 2021-8-31 10:02
恩,就是DC-DC比較好使能控制,所以一直想用DC-DC
但如果LDO本身的工作電流就很低的話,我也是傾向于用L ...

我的回答已經(jīng)說了你想要的知道的知識點(diǎn)了
作者: Y_G_G    時間: 2021-8-31 20:54
PEB188 發(fā)表于 2021-8-31 18:10
外部中斷里按鍵需要消抖嗎及松手等待嗎

去抖動是肯定要的
如果程序沒有什么其它任務(wù),肯定是直接在中斷中放一個延時省事了
如果有多重任務(wù)的話,肯定是不能在中斷中有長延時,比如有數(shù)碼管顯示的時候,只要是在中斷中有延時,哪怕只有1mS,人眼也能感覺到數(shù)碼管閃了一下
如果在中斷中有等待松開的話,就更不用說了,數(shù)碼直接就是長亮一位或者長暗
作者: 一夜暴富    時間: 2021-9-1 10:38
Y_G_G 發(fā)表于 2021-8-31 20:50
我的回答已經(jīng)說了你想要的知道的知識點(diǎn)了

好的,謝謝~還有最后一個問題
為什么我給lm2596使能腳高電平,讓它停止工作
理應(yīng)VOUT應(yīng)該0V左右,但每次關(guān)閉后的電壓都不同,從0.050V~2V左右都有
這是為什么呢,電路就是上面的電路
作者: Y_G_G    時間: 2021-9-1 11:30
一夜暴富 發(fā)表于 2021-9-1 10:38
好的,謝謝~還有最后一個問題
為什么我給lm2596使能腳高電平,讓它停止工作
理應(yīng)VOUT應(yīng)該0V左右,但每 ...

這個不好說,要結(jié)合實(shí)際情況的
你看一下數(shù)據(jù)手冊有沒有說明的
如果數(shù)據(jù)手冊沒有說明,理論上輸出就應(yīng)該是0V,你就要看一下你硬件電路了
作者: 一夜暴富    時間: 2021-9-3 19:34
Y_G_G 發(fā)表于 2021-9-1 11:30
這個不好說,要結(jié)合實(shí)際情況的
你看一下數(shù)據(jù)手冊有沒有說明的
如果數(shù)據(jù)手冊沒有說明,理論上輸出就應(yīng)該是 ...

不知道大佬能否再幫我解答一下
我是在喚醒中斷里寫了喚醒后單片機(jī)該做什么
而不是寫在
PCON = 0x02;
                _nop_;
                _nop_;
                _nop_;
                _nop_;
的后面。
請問這樣是可以的嗎
作者: Y_G_G    時間: 2021-9-3 23:04
一夜暴富 發(fā)表于 2021-9-3 19:34
不知道大佬能否再幫我解答一下
我是在喚醒中斷里寫了喚醒后單片機(jī)該做什么
而不是寫在

看不到完整程序和電路,不知道你要做什么
這個是我一個藍(lán)牙耳機(jī)的,長按或者雙擊喚醒的,按鍵和其它函數(shù),你可以先不管,你大概看一下喚醒的流程就可以了
void main(void)
{
        Mcu_Rst();          //單片機(jī)復(fù)位
        Mcu_Awaken(); //單片機(jī)喚醒操作
        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;                                                                                //清除按鍵喚醒標(biāo)志位
                        if(ON==1)                                                                          
                          {                                                       
                                        Delay_ms(300);                                                                //延時一定時間開機(jī),沒有為什么,就是達(dá)到某個效果而已,可有可無
                                        Tap6130_Start();                                                         //如果是按鍵開機(jī),就啟動耳放和藍(lán)牙
                                        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在插著,就不關(guān)機(jī)
                                        {                               
                                                Delay_ms(300);                                                                //延時0.3秒關(guān)機(jī)
                                                Mcu_Sleep();                                                                //單片機(jī)進(jìn)入掉電模式
                                                PCON=0x02;                                                                        //進(jìn)入掉電模式
                                                _nop_();                               
                                                _nop_();
                                                _nop_();
                                                _nop_();
                                                _nop_();
                                                Mcu_Awaken();                                                                  //單片機(jī)喚醒
                                                if(USB==1)Stc8g_Adc_int();                                        //如果USB高電平,就表示是USB播放,stc8gadc初始化               
                                        }                                                               
        }                          
//———————————————————————————————————————————————————————————————————                                       
}


作者: 一夜暴富    時間: 2021-9-5 14:59
Y_G_G 發(fā)表于 2021-9-3 23:04
看不到完整程序和電路,不知道你要做什么
這個是我一個藍(lán)牙耳機(jī)的,長按或者雙擊喚醒的,按鍵和其它函數(shù),你 ...

好的,謝謝!
作者: ax6808    時間: 2022-12-8 00:54
今天剛好碰到這個現(xiàn)象,單按鍵P32腳INT0開始一直可以喚醒,后來改了些代碼就不行了,正想研究一下,原來代碼就有長按1秒(開/關(guān)大燈) / 2秒(掉電全關(guān)待機(jī))的軟延時代碼...... 后來還加了個循環(huán)好像就喚不醒了,明天繼續(xù),呵呵!好玩! 謝謝!


作者: GT_H    時間: 2024-3-30 14:43
Y_G_G 發(fā)表于 2021-8-30 15:20
1,不要在中斷函數(shù)中設(shè)定或者使用Delay()長時間延時,沒有辦法的情況下才會在中斷中使用,如果可以的話,中斷函 ...

大哥請問下仿真的時候掉電后無法通過外部中斷1喚醒是什么情況呀




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产三级在线播放 | 欧美a视频| 91精品国产综合久久久久久 | 成人一区二区视频 | 亚洲精品18在线观看 | 国产成人精品亚洲男人的天堂 | 一级片免费在线观看 | 青青草国产精品 | 精品黑人一区二区三区国语馆 | 看片黄全部免费 | 毛片网站免费 | 精品免费国产 | 国产精品美女www爽爽爽 | 亚洲国产精品久久久久久 | 欧美综合久久 | 中文字幕第一页在线 | 中文字幕欧美激情 | 国产美女永久免费无遮挡 | 99视频免费观看 | 日韩中文视频 | 成人三级在线观看 | 刘玥大战28公分黑人 | 亚洲久久久久久 | 在线观看黄色片 | 欧美精品久久 | 成人高清在线 | 天堂在线中文资源 | 9l视频自拍九色9l视频成人 | 成人午夜网站 | 亚洲第一在线 | 亚洲国产日韩在线 | 日韩精品久久久久久免费 | 欧美男人天堂 | 91成人小视频 | 自拍偷拍亚洲 | 国产精品hd | 五月天婷婷视频 | 亚洲在线播放 | 亚洲精品美女 | 久操不卡 | 亚洲激情一区二区 |