⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clockalarm_main.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 C
📖 第 1 页 / 共 2 页
字号:
//********************************************************************
// Name:    mjp_ap_main.c
// 
// Copyright (C) Sitronix TECHNOLOGY INC.
// All rights reserved by Sitronix TECHNOLOGY INC.
//
// Project:    ST3110
// Author:      Terry Wu
// Begin Date:  2008/01/01
// Last update: 2008/04/01
// $Header: $
// Description:
//   deal with event 
//   
//   
//********************************************************************

#include <intr6502.h>
#include <stdlib.h>
#include "sys.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#include "ClockAlarm.h"

#pragma codeseg(APP)

extern uint8 alarm_state,alarm_selection,alarm_fcous;
extern uint8 alarm_enable[2];
extern uint8 alarm_hr[2],alarm_min[2];
extern uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;

extern void _alarm1_show(void);
extern void _alarm2_show(void);
extern void _alarm_show_update(void);
extern void _alarm_set(void);
extern void _exit_to_PhoBro(void);
extern void _show_battery(void);
extern uint8 _get_battery_icon_index(void);


void v_process_key_events(void);

void APP_MAIN(void)
{
 v_process_key_events();        
}


void v_process_key_events(void)
{
        
        if(API_OsCheckEventOccur(EVID_KEY_DOWN_60MS))
        {       
                API_OsReleaseEvent(EVID_KEY_DOWN_60MS);
                switch(API_OsGetKeyId())
                {
                 case KEYID_PLAY:
                        switch(alarm_state)
                        {
                          case CLOCKALARM_STATE_BEGIN:
                                API_OsSetCurrentTask(TASKID_CLOCKACLOCK);
                                break;
                          case CLOCKALARM_STATE_SEL_ALARM:
                                alarm_state = CLOCKALARM_STATE_SEL_FCOUS;
                                                                _alarm_show_update();
                                                                break;
                          case CLOCKALARM_STATE_SEL_FCOUS:
                          case CLOCKALARM_STATE_ADJUST:
                                alarm_state = CLOCKALARM_STATE_SEL_ALARM;
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_EN,alarm_enable[0]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_EN,alarm_enable[1]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_HOUR,alarm_hr[0]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_HOUR,alarm_hr[1]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_MIN,alarm_min[0]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_MIN,alarm_min[1]);
                                _alarm_set();
                                _alarm_show_update();
                                break;
                        }
                        break;
                 case KEYID_UP:
                        switch(alarm_state)
                        {
                                case CLOCKALARM_STATE_BEGIN:
                                case CLOCKALARM_STATE_SEL_ALARM:
                                     alarm_state = CLOCKALARM_STATE_SEL_ALARM;
                                     if(alarm_selection == 1)
                                      alarm_selection = 2;
                                     else
                                      alarm_selection = 1;   
                                     _alarm1_show();
                                     _alarm2_show();
                                     break;
                                case CLOCKALARM_STATE_SEL_FCOUS:
                                case CLOCKALARM_STATE_ADJUST:
                                     alarm_state = CLOCKALARM_STATE_ADJUST;
                                     switch(alarm_fcous)
                                     {
                                       case 0: //set alarm enable/disable
                                            alarm_enable[alarm_selection-1] = !alarm_enable[alarm_selection-1];
                                            break;
                                       case 1: //set hour
                                            if(alarm_hr[alarm_selection-1] == 23)
                                             alarm_hr[alarm_selection-1] = 0;
                                            else
                                             alarm_hr[alarm_selection-1]++;
                                            break;
                                       case 2: //set minute
                                            if(alarm_min[alarm_selection-1] == 59)
                                             alarm_min[alarm_selection-1] = 0;
                                            else
                                             alarm_min[alarm_selection-1]++;
                                            break;
                                     }
                                     _alarm_show_update();
                                     break;
                        }
                        break;
                 case KEYID_DOWN:
                        switch(alarm_state)
                        {
                                case CLOCKALARM_STATE_BEGIN:
                                case CLOCKALARM_STATE_SEL_ALARM:
                                     alarm_state = CLOCKALARM_STATE_SEL_ALARM;
                                     if(alarm_selection == 1)
                                      alarm_selection = 2;
                                     else
                                      alarm_selection = 1;   
                                     _alarm1_show();
                                     _alarm2_show();
                                     break;
                                case CLOCKALARM_STATE_SEL_FCOUS:
                                case CLOCKALARM_STATE_ADJUST:
                                     alarm_state = CLOCKALARM_STATE_ADJUST;
                                     switch(alarm_fcous)
                                     {
                                       case 0: //set alarm enable/disable
                                            alarm_enable[alarm_selection-1] = !alarm_enable[alarm_selection-1];
                                            break;
                                       case 1: //set hour
                                            if(alarm_hr[alarm_selection-1] == 0)
                                             alarm_hr[alarm_selection-1] = 23;
                                            else
                                             alarm_hr[alarm_selection-1]--;
                                            break;
                                       case 2: //set minute
                                            if(alarm_min[alarm_selection-1] == 0)
                                             alarm_min[alarm_selection-1] = 59;
                                            else
                                             alarm_min[alarm_selection-1]--;
                                            break;
                                     }
                                     _alarm_show_update();
                                     break;
                        }
                        break;
                 case KEYID_RIGHT:
                        switch(alarm_state)
                        {
                                case CLOCKALARM_STATE_SEL_FCOUS:
                                case CLOCKALARM_STATE_ADJUST:
                                     alarm_state = CLOCKALARM_STATE_SEL_FCOUS;
                                     if(alarm_fcous == 2)
                                      alarm_fcous = 0;
                                     else
                                      alarm_fcous++;    
                                     break;
                        }
                        _alarm_show_update();
                        break;
                 case KEYID_LEFT:
                        switch(alarm_state)
                        {
                                case CLOCKALARM_STATE_SEL_FCOUS:
                                case CLOCKALARM_STATE_ADJUST:
                                     alarm_state = CLOCKALARM_STATE_SEL_FCOUS;
                                     if(alarm_fcous == 0)
                                      alarm_fcous = 2;
                                     else
                                      alarm_fcous--;    
                                     break;
                        }
                        _alarm_show_update();
                        break;
                 default:
                        break;
                }
                API_OsPendEvent(EVID_KEY_DOWN_60MS);
        }
        
        if(API_OsCheckEventOccur(EVID_KEY_UP))
        {
         API_OsReleaseEvent(EVID_KEY_UP);
         if(API_OsGetKeyId() == KEYID_MODE)
         {
                        switch(alarm_state)
                        {
                          case CLOCKALARM_STATE_BEGIN:
                                _exit_to_PhoBro();
                                break;
                          case CLOCKALARM_STATE_SEL_ALARM:
                                alarm_selection = 0;
                                alarm_state = CLOCKALARM_STATE_BEGIN;
                                _alarm1_show();
                                _alarm2_show();                                                         
                                break;
                                                  case CLOCKALARM_STATE_SEL_FCOUS:
                          case CLOCKALARM_STATE_ADJUST:
                                alarm_state = CLOCKALARM_STATE_SEL_ALARM;
                                                                alarm_fcous = 0;
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_EN,alarm_enable[0]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_EN,alarm_enable[1]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_HOUR,alarm_hr[0]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_HOUR,alarm_hr[1]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_MIN,alarm_min[0]);
                                API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_MIN,alarm_min[1]);
                                _alarm_set();
                                _alarm_show_update();
                                break;
                        }         
         }
         API_OsPendEvent(EVID_KEY_UP);
        } 
                
        if(API_OsCheckEventOccur(EVID_KEY_KEEP_DOWN))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -