OSDN Git Service

[SCHEMATIC] Modify SW/MW/LW Preamp, insert galbanic-isolator replace of common-mode...
[openi2cradio/OpenI2CRadio.git] / power.c
diff --git a/power.c b/power.c
index 3d3c060..d4e469e 100644 (file)
--- a/power.c
+++ b/power.c
@@ -31,6 +31,8 @@
 #include "power.h"
 #include "menu.h"
 #include "backlight.h"
+#include "rencoder.h"
+#include "euart.h"
 
 /*
  * Detect reset condition.
@@ -92,9 +94,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);
@@ -140,7 +142,9 @@ unsigned char chk_powerbutton(void)
 void shutdown(unsigned char savef)
 {
     rfamp_power(RFAMP_OFF);
+    power_on(0);
     acm1602_suspend(LCD_I2CADDR);
+    lcd_setbacklight(0, 0);
     power_off(savef);
 }
 
@@ -148,18 +152,18 @@ void power_off(unsigned char savef)
 {
     unsigned char sts;
 
+    uart_sleep();
     if(savef != 0) {
         save_eeprom();
         save_userbands();
     }
-    lcd_setbacklight(0, 0);
-    set_powerlamp(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.