對應電池供電的產品,在不使用的時候,微控制器和外設都應該進入休眠狀態,用於減少對電池電量消耗.在使用的時候又能夠通過按鍵,或是其他訊號喚醒系統,然後進入正常工作狀態.在電壓v3.3v的情況下,應廣微控制器的休眠電流幾乎在2ua以下,經常測到都是一點幾ua.非常不錯|那麼應廣微控制器的低功耗和按鍵喚醒是怎麼實現的呢?不多說上**.除了外部喚醒,還有一種機制是內部定時器定時喚醒,請聽下回分解!
#include "extern.h"
#define high 1
#define low 0
#define disable 0
#define enable 1
#define empty 0
#define full 1
#define on 1
#define off 0
#define low_pow_timing_tmr 5000
/*燈*/
bit led_r : pa.0;
/*按鍵*/
bit key_pow : pa.3;
#define key_debounce_cnt 20
#define key_long_press_timer 1200
#define led_r_on led_r=1
#define led_r_off led_r=0
/*定時時間是否到了cinit*/
bit flag_nms;
/*計數值cinit*/
byte count;
/*定時器初始化cinit*/
word t16counter;
eword uelowpowalttm;
byte uckeypowhigtcnt;
byte uckeypowlowcnt;
byte uckeypowst;
byte uckeypowbak;
word uskeypowloprecnt;
//word uskeypowloprecntset;
bit uckeypowprest;
void updateledst(void);
/***************************************/
void time16_init(void)
}/*ilrc->ihrc ,
b7:5@001=ihrc/8,
b4@1=ihrc
b3@1=模式1
b2@ 1=ilrc啟動
b1@ 1=看門狗開啟
b0@ 0=pa5;
模式口1;開看門狗*/
clkmd=0b001_1_1110;
uelowpowalttm=low_pow_timing_tmr;
//$ padier 0b111_1_1001;}}
/*10ms任務函式*/
void updatekeytmr(void)
/*當前狀態為0*/
else
/*keypow高電平計數值*/
if(uckeypowhigtcnt)
}/*keypow低電平計數值*/
if(uckeypowlowcnt)
}/*狀態切換*/
void getkeyst(void)
}uckeypowhigtcnt=key_debounce_cnt;
uckeypowlowcnt=key_debounce_cnt;
uskeypowloprecnt=0;
uckeypowprest=0;
}void fppa0 (void)
lowpow();
}/*取得按鍵狀態*/
getkeyst();}}
void interrupt ( void )
else
popaf;
}
應廣微控制器adc 應廣微控制器adc和pwm例程
應廣微控制器otp單核系列主要有以下幾個系列,15x系列為純io,13x系列為帶12bit的adc,17x系列為帶8bit的adc,現在我用pms132b寫個adc pwm例程,方便大家快速上手.不多說,上 include extern.h adc word usadcsum word usadcs...
應廣微控制器adc 應廣微控制器選型表 2014
series 系列型號 fppa 核心數otp rom k word ram byte adc bit ch i olcd bit ch pwmint special functions package re.pms150 s08 sop8 2501c,12c509 pmc150 s08 sop8 ...
應廣微控制器應用之 呼吸燈
在很多的微控制器方案應用中,很多都會用到到指示燈,比如流水燈,rgb七彩燈,對了還有呼吸燈.現在用pms150c做個demo,稍作修改就可以用在pms152,pms132b燈應廣其他系列的微控制器中.不多說,上 一切盡在 中.include extern.h 定時時間是否到了cinit bit fl...