OSDN Git Service

[v2.0][RENC] Try to reject click-noise, may be correct ;_;
[openi2cradio/OpenI2CRadio.git] / power.c
diff --git a/power.c b/power.c
index 5cd64c7..7ece052 100644 (file)
--- a/power.c
+++ b/power.c
@@ -31,6 +31,7 @@
 #include "power.h"
 #include "menu.h"
 #include "backlight.h"
+#include "rencoder.h"
 
 /*
  * Detect reset condition.
@@ -92,9 +93,9 @@ void power_on_inthook(void)
 void power_on(unsigned char f)
 {
     if(f == 0x00){
-        set_examp_mute(0xff);
-        idle_time_ms(200);
-        set_radiopower(0x00);
+       set_radiopower(0x00);
+       set_examp_mute(0xff);
+//        idle_time_ms(200);
     } else {
         set_examp_mute(0x00);
         idle_time_ms(100);
@@ -137,29 +138,31 @@ unsigned char chk_powerbutton(void)
     return 0; // Not pressed
 }
 
-void shutdown(unsigned char save)
+void shutdown(unsigned char savef)
 {
     rfamp_power(RFAMP_OFF);
+    power_on(0);
     acm1602_suspend(LCD_I2CADDR);
-    power_off(save);
+    lcd_setbacklight(0, 0);
+    power_off(savef);
 }
 
-void power_off(unsigned char save)
+void power_off(unsigned char savef)
 {
     unsigned char sts;
 
-    if(save != 0) {
+    if(savef != 0) {
+
         save_eeprom();
         save_userbands();
     }
-    lcd_setbacklight(0, 0);
     set_powerlamp(0);
     _AM_STATLAMP = 0;
     _FM_STATLAMP = 0;
-    power_on(0);
 
     WDTCONbits.SWDTEN = 0; // Lame WDT OFF.
     sts = 0;
+    rencoder_stop();
     do {
         RCONbits.IPEN = 1;
         IOCB = 0x10; // IOCB4 ONLY.