main.c

来自「电子称重的程序」· C语言 代码 · 共 81 行

C
81
字号
#include<config.h>
#include<head.h>
#include<main.h>
#pragma OPTIMIZE(9)


void   (* pFuntion)(MSG *Msg);


BOOL       tempbit;
code    void(*S_Funtab[])(MSG *)={s_stopfun,s_startfun,s_syssetfun,s_usersetfun,s_weightfun};
#define US_Startfun SS_Startfun
code    void(*US_Funtab[])(MSG *)={US_Startfun,US_Unitsetfun,US_Funsetfun,US_Holdsetfun,US_Comsetfun};
code    void(*SS_Funtab[])(MSG *)={SS_Startfun,SS_Filsetfun,SS_Weisetfun,SS_Linsetfun,SS_Calsetfun};



/**************************************************************************
*      函数原型:void main(void);
*      功    能:主程序,进行系统初始化和称重等操作。
**************************************************************************/
void main(void)
{
 MSG     pMsg;

 MessageInit();
 systimeinit();         //系统时间初始化
 lcd_init();             //LCD驱动初始化
 aprintf(0x00,"Y1C-1.1");
 beep(200);
 DataInit();             //24c02初始化
 key_init();          //按键驱动初始化
ComInit();
 //LoadData();
 adinit();          //AD芯片初始化
 setstate(S_START);
 while(1)
 {
  if(GetMessage(&pMsg))   //取得消息
  {
   pretreatmentmsg(&pMsg);//预处理信息
   OSMsgDo(&pMsg);       //公共消息处理
   pFuntion(&pMsg); //调用当前状态对应处理函数
  }
 }
}

void    pretreatmentmsg(MSG *pMsg)
{
 switch(pMsg->message)
 {
 case  M_KEYUP:
       PostMessage(M_CHAR,pMsg->param);
       break;
 }
}
void    OSMsgDo(MSG *pMsg)
{

 switch(pMsg->message)
 {
 case   M_ADHAD:
       AdDo();
       break;
 }
}


void    setstate(Uchar state)
{
  pFuntion=S_Funtab[state];
  PostMessage(M_REFURBISH,Sys_State);
  Sys_State=state;
  fun_state=0;
  cfun_state=0;
}




⌨️ 快捷键说明

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