static int __ddrrun_func save_calc_ocv()
{
    short v_reg, c_reg;

    disable_charger();
    sleep(1320); /* 1210ms + 110ms */

    SMARTSTAR_REGS_READ(SMARTSTAR_VOL_FIFO_BASE, &v_reg, 2);
    SMARTSTAR_REGS_READ(SMARTSTAR_CUR_FIFO_BASE, &c_reg, 2);
    
    enable_charger();

    coul_nv_info->calc_ocv_reg_v = v_reg;
    coul_nv_info->calc_ocv_reg_c = c_reg;
    coul_nv_info->start_cc = 0;
    coul_nv_info->hkadc_batt_temp = (short)smartstar_battery_temperature();
    coul_nv_info->hkadc_batt_id_voltage = (short)smartstar_battery_id_voltage();
    coul_nv_info->ocv_temp = smartstar_battery_temperature()*10;

    SMARTSTAR_COUL_INF("save calc ocv fastboot read batt temp =%d , batt id voltage=%d\n",\
                        coul_nv_info->hkadc_batt_temp, coul_nv_info->hkadc_batt_id_voltage);
    SMARTSTAR_COUL_INF("v_reg=%d, c_reg=%d\n", v_reg, c_reg);

    return save_nv();
        
}
static int __ddrrun_func use_saved_ocv(int is_calc_ocv_valid)
{
    if(is_saved_ocv_valid(is_calc_ocv_valid)){
    SMARTSTAR_COUL_INF("use saved ocv\n");

        coul_nv_info->hkadc_batt_temp = smartstar_battery_temperature();
        coul_nv_info->hkadc_batt_id_voltage = smartstar_battery_id_voltage();
        /* don't clean cc and time, kernel will use them and saved ocv to calc soc */
        return save_nv();
    }
    else{
        return use_calc_ocv();
    }
}
Exemplo n.º 3
0
void main_save()
{
   sound_stop();
   if (conf.cmos)
       save_nv();
   unsigned char optype = 0;
   for (int i = 0; i < 4; i++)
   {
      if (!comp.wd.fdd[i].test())
          return;
      optype |= comp.wd.fdd[i].optype;
   }

   if (!optype)
       sprintf(statusline, "all saved"), statcnt = 30;
}
static int __ddrrun_func save_pmu_ocv()
{
    short ocvreg,volreg_offset;

    SMARTSTAR_REGS_READ(SMARTSTAR_OCV_REG_BASE,&ocvreg,2);
    SMARTSTAR_REGS_READ(SMARTSTAR_OFFSET_VOLTAGE,&volreg_offset,2);
    ocvreg -= volreg_offset;
    ocvreg += delta_ocv;

    SMARTSTAR_REGS_WRITE(SMARTSTAR_SAVE_OCV_ADDR,&ocvreg,2);
    coul_nv_info->calc_ocv_reg_v = 0;
    coul_nv_info->calc_ocv_reg_c = 0;
    coul_nv_info->start_cc = 0;
    coul_nv_info->hkadc_batt_temp = (short)smartstar_battery_temperature();
    coul_nv_info->hkadc_batt_id_voltage = (short)smartstar_battery_id_voltage();
    coul_nv_info->ocv_temp = smartstar_battery_temperature()*10;
    SMARTSTAR_COUL_INF("save pmu ovc fastboot read batt temp =%d , batt id voltage=%d\n", \
                        coul_nv_info->hkadc_batt_temp, coul_nv_info->hkadc_batt_id_voltage);
    return save_nv(); 
}
Exemplo n.º 5
0
void __declspec(noreturn) exit()
{
//   EnableMenuItem(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_ENABLED);
   exitflag = 1;
   if (savesndtype)
       savesnddialog();
   if (videosaver_state)
     main_savevideo();  // stop saving video

   if (!normal_exit)
       done_fdd(false);
   done_tape();
   done_dx();
   done_gs();
   done_leds();
   save_nv();
   zf232.rs_close();
   zf232.zf_close();
   done_ie_help();
   done_bpx();
   GdiplusShutdown();

//   timeEndPeriod(1);
   if (ay[1].Chip2203) YM2203Shutdown(ay[1].Chip2203); //Dexus
   if (ay[0].Chip2203) YM2203Shutdown(ay[0].Chip2203); //Dexus
   if (comp.ts.vdac2) vdac2::close_ft8xx();

   color();
   printf("\nsee you later!\n");
   if (!nowait)
   {
       SetConsoleTitle("press a key...");
       FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
       getch();
   }
   fflush(stdout);
   SetConsoleCtrlHandler(ConsoleHandler, FALSE);
   exit(0);
}