?? main.c
字號:
#define _main_
#include "general.h"
#include "7219.h"
#include "key.h"
#include "com.h"
#include "state.h"
//#include "protocol.h"
//#include "data.h"
/*
/*Timer
#define F_OSC 11.0592
#define TIMER0BASE 2//ms
#define BASETIMER0 (65536-TIMER0BASE*1000*F_OSC/12)
*/
typedef struct {
uchar Index;
uchar KeyUpState;uchar KeyDnState;uchar KeyCrState;uchar KeyEscState;
void (*CurOper)();
} MenuTabStruct;
/******************************************************************************************
狀態索引表
*******************************************************************************************/
#define SIZE_OF_MENU 32
MenuTabStruct code StateTab[SIZE_OF_MENU]={ //State索引表
// ^ v e q Func
//---Level 1--------------------------------------------------------------------
{ 0, 2, 1, 3, 0,(*Sev_State0)}, //1 '算法1'
{ 1, 0, 2,13, 1,(*Sev_State1)}, //2 '算法2'
{ 2, 1, 0, 7, 2,(*Sev_State2)}, //3 '設置'
//---Level 2--------------------------------------------------------------------
{ 3, 3, 3, 3, 0,(*Sev_State3)}, //1-1 '尋北中'
//------------------------------------------------------------------------------
{ 4, 4, 4, 8, 2,(*Sev_State4)}, //3-1 '參數周期個數p ' (NULL)
{ 5, 7, 29,14, 2,(*Sev_State5)}, //3-2 '參數儀器常數a '
{ 6, 6, 6, 10, 2,(*Sev_State6)}, //3-3 '參數緯度wd' (NULL)
{ 7, 29,5, 21, 2,(*Sev_State7)}, //3-4 '參數比例系數c'
//---Level 3---------------------------------------------------------------------
{ 8, 9, 9, 4, 4,(*Sev_State8)}, //3-1-1 '設置參數p[1] '
{ 9, 8, 8, 4, 4,(*Sev_State9)}, //3-1-0 '設置參數p[0] '
//--------------------------------
{ 10, 12, 11, 6, 6,(*Sev_State10)}, //3-3-3 '設置參數wd[2]'
{ 11, 10, 12, 6, 6,(*Sev_State11)}, //3-3-2 '設置參數wd[1]'
{ 12, 11, 10, 6, 6,(*Sev_State12)}, //3-3-1 '設置參數wd[0]'
{ 13, 13, 13,13, 1,(*Sev_State13)}, //2-1 '標定程序'
//--------------------------------
{ 14, 20, 15, 5, 5,(*Sev_State14)}, //3-2-6 '設置參數a[6]'
{ 15, 14, 16, 5, 5,(*Sev_State15)}, //3-2-5 '設置參數a[5]'
{ 16, 15, 17, 5, 5,(*Sev_State16)}, //3-2-4 '設置參數a[4]'
{ 17, 16, 18, 5, 5,(*Sev_State17)}, //3-2-3 '設置參數a[3]'
{ 18, 17, 19, 5, 5,(*Sev_State18)}, //3-2-2 '設置參數a[2]'
{ 19, 18, 20, 5, 5,(*Sev_State19)}, //3-2-1 '設置參數a[1]'
{ 20, 19, 14, 5, 5,(*Sev_State20)}, //3-2-0 '設置參數a[0]'
//--------------------------------
{ 21, 24, 22, 7, 7,(*Sev_State21)}, //3-4-3 '設置參數c[5]'
{ 22, 21, 23, 7, 7,(*Sev_State22)}, //3-4-2 '設置參數c[4]'
{ 23, 22, 24, 7, 7,(*Sev_State23)}, //3-4-1 '設置參數c[3]'
{ 24, 23, 21, 7, 7,(*Sev_State24)}, //3-4-0 '設置參數c[2]'
//--------------------------------
{ 25, 28, 26, 29, 29,(*Sev_State25)}, //3-5-3 '設置參數z[3]'
{ 26, 25, 27, 29, 29,(*Sev_State26)}, //3-5-2 '設置參數z[2]'
{ 27, 26, 28, 29, 29,(*Sev_State27)}, //3-5-1 '設置參數z[1]'
{ 28, 27, 25, 29, 29,(*Sev_State28)}, //3-5-0 '設置參數z[0]'
//-------------------------------------------------------------------------------
{ 29, 5, 7, 25, 2,(*Sev_State29)}, //3-5 '參數中天位置z'(新增狀態)
//--------------------------------------------------------------------------------
{ 30, 30, 30, 3, 0,(*Sev_State30)}, //1-2 '尋北結果界面'(新增狀態)
//-------------------------------------------------------------------------------
{ 31, 31, 31, 0, 0,(*Sev_State31)} // '報錯界面'
};
/***************************************************************************************************
***************************************************************************************************/
void (*Sev_Ptr)();
void init(void){
ES=0;
SPK=0;
init_com();
init_max7219();
init_state();
//init_154();
//gboff();
ES=1;
}
//void(*SoftReset)(); //軟復位
void main(){
uchar keyvalue;
init();
//Index=0;
while(1){
////////////////////////////////////////////////////////////////////////////
//delay(1000);
keyvalue=kbscan();
//cls();
//disp(keyvalue/10,9);
//disp(keyvalue%10,10);
//delay(1000);
///////////////////////////////////////////////////////////////////////////
switch(keyvalue){
case BN_ENT:{
Index=StateTab[Index].KeyCrState;
break;
}
case BN_PGUP:{
Index=StateTab[Index].KeyUpState;
break;
}
case BN_PGDN:{
Index=StateTab[Index].KeyDnState;
break;
}
case BN_ESC: {
Index=StateTab[Index].KeyEscState;
break;
}
default:
break;
}
Sev_Ptr=StateTab[Index].CurOper;
(*Sev_Ptr)();
//cls();
//disp(keyvalue/10,9);
//disp(keyvalue%10,10);
//delay(2000);
}
//SoftReset=0;
//SoftReset();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -