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

📄 usermain.c

📁 电子称重的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
       switch(cfun_state)
       {
        case   2:
        case   5:
               aprintf(0x00,"%6ld",scalenow.ad);
               break;
       }
	 break;

   }

}

void SS_Weisetfun(MSG *pMsg)
{
   switch(pMsg->message)
   {

   case  M_CHAR:
	switch(cfun_state)
       {
       #if 1
	case  0:                                   //滤波设定
              if(pMsg->param==KEY_NEXT)SetNextFunState();
              if(pMsg->param==KEY_ENTER)SetNextcFunState();
              break;
	#endif
       case  1:
             if(pMsg->param==KEY_CHA){if(++CalSet.cSCapexp>CAPEXH)CalSet.cSCapexp=CAPEXL;}
             if(pMsg->param==KEY_ADD){if(++CalSet.cSCap>CAPS)CalSet.cSCap=0;}
             if(pMsg->param==KEY_SUB){if(CalSet.cSCap--==0)CalSet.cSCap=CAPS;}
             if(pMsg->param==KEY_NEXT)
             {
		E_write(I2C_SCAP, CalSet.cSCap);
		E_write(I2C_SCAPEX, CalSet.cSCapexp);
		SetNextcFunState();
             }
             break;

       case  2:
             if(pMsg->param==KEY_CHA)if(++CalSet.cSDiv>SSENSN)CalSet.cSDiv=0;
            if(pMsg->param==KEY_NEXT){E_write(I2C_SSENS,CalSet.cSDiv);SetFunState(fun_state);}
            break;

	}
	PostMessage(M_REFURBISH,cfun_state);
	break;

   case M_REFURBISH:
   	switch(cfun_state)
       {
       case  0:
             aprintf(0x20,"P2 Wei   ");
             break;
       case  1:
             aprintf(0x10,"CAP");    //设置滤波方式
             if(CalSet.cSCapexp>CAPEXH)CalSet.cSCapexp=CAPEXL;
             if(CalSet.cSCap>CAPS)CalSet.cSCap=0;
             CalSet.fSCap=(scaps[CalSet.cSCap].SCapn*pow10(CalSet.cSCapexp));
             aprintf(0x00,"%7f",CalSet.fSCap);
             break;
       case  2:
             aprintf(0x10,"DIV");    //设置滤波方式
             if(CalSet.cSDiv>SSENSN)CalSet.cSDiv=0;
             CalSet.fSDiv=DivTab[CalSet.cSDiv]*pow10(CalSet.cSCapexp);
             aprintf(0x00,"%f",CalSet.fSDiv);
             break;
   	}
	break;
   }
}

/**************************************************************************
*      函数原型:void    s_syssetfun(MSG *pMsg)
*      功    能:经销商设置程序,对接收的消息进行处理
**************************************************************************/
void    s_syssetfun(MSG *pMsg)
{
	((void (*)(MSG * pMsg))SS_Funtab[fun_state])(pMsg);
}
/**************************************************************************
*      函数原型:void s_usersetfun(MSG *pMsg)
*      功    能:用户参数设置程序,对接收的消息进行处理
**************************************************************************/
void s_usersetfun(MSG *pMsg)
{
 ((void (*)(MSG * pMsg))US_Funtab[fun_state])(pMsg);
}

void US_Unitsetfun(MSG *pMsg)
{
   switch(pMsg->message)
   {
   case  M_CHAR:
	switch(cfun_state)
       {
       }
	break;
	PostMessage(M_REFURBISH,cfun_state);
   case M_REFURBISH:
   	switch(cfun_state)
       {
   	}
  	break;
    }

}
void US_Funsetfun(MSG *pMsg)
{
  switch(pMsg->message)
   {
   case  M_CHAR:
	switch(cfun_state)
       {
       case 0:
             if(pMsg->param==KEY_NEXT)SetNextFunState();
             if(pMsg->param==KEY_ENTER)SetNextcFunState();
             break;
        case 1:
             if(pMsg->param==KEY_CHA)funset.flag^=POWREN;
             if(pMsg->param==KEY_NEXT){E_write(I2C_FLAG,funset.flag);SetNextcFunState();}
             break;
        case 2:
             if(pMsg->param==KEY_CHA)funset.flag^=LIGHTEN;
             if(pMsg->param==KEY_NEXT){E_write(I2C_FLAG,funset.flag);SetcFunState(0);}
             break;
       }
	PostMessage(M_REFURBISH,cfun_state);
	break;
   case M_REFURBISH:
   	switch(cfun_state)
       {
        case 0:
             aprintf(0x20,"P1 Oth  ");
             break;
        case 1:
             aprintf(0x10,"PWR");
             aprintf(0x00,DisGetonoff(funset.flag&POWREN));
             break;
        case 2:
             aprintf(0x10," BL");
             lcd_setback(funset.flag&LIGHTEN);
             aprintf(0x00,DisGetonoff(funset.flag&LIGHTEN));
             break;
   	}
  	break;
    }
}

void US_Holdsetfun(MSG *pMsg)
{
   switch(pMsg->message)
   {
   case  M_CHAR:
	switch(cfun_state)
       {
       case 0:
             if(pMsg->param==KEY_NEXT)SetNextFunState();
             if(pMsg->param==KEY_ENTER)SetNextcFunState();
             break;
        case 1:
             if(pMsg->param==KEY_CHA)funset.flag^=HOLDEN;
             if(pMsg->param==KEY_NEXT){E_write(I2C_FLAG,funset.flag);SetNextcFunState();}
             break;
        case 2:
             if(pMsg->param==KEY_CHA)holdset.holdd++;
             if(pMsg->param==KEY_NEXT){E_write(I2C_HOLDSET_HOLDD,holdset.holdd);SetNextcFunState();}
             break;
        case 3:
             if(pMsg->param==KEY_CHA)holdset.holdt++;
             if(pMsg->param==KEY_NEXT){E_write(I2C_HOLDSET_HOLDT,holdset.holdt);SetcFunState(0);}
             break;
       }
	PostMessage(M_REFURBISH,cfun_state);
	break;
   case M_REFURBISH:
   	switch(cfun_state)
       {
       case 0:
             aprintf(0x20,"P2 HLD   ");
             break;
        case 1:
             aprintf(0x10," HD");
             aprintf(0x00,DisGetonoff(funset.flag&HOLDEN));
             break;
        case 2:
             if(holdset.holdd>HOLDD)holdset.holdd=0;
             aprintf(0x10," Ht");
             aprintf(0x00,"%5bdd",holdset.holdd);
             break;
        case 3:
             if(holdset.holdt>HOLDT)holdset.holdt=0;
             aprintf(0x10," Hd");
             aprintf(0x00,"%3bd",holdset.holdt);
             break;
   	}
  	break;
    }
}

void US_Comsetfun(MSG *pMsg)
{
   switch(pMsg->message)
   {
   case  M_CHAR:
	switch(cfun_state)
       {
       case 0:
             if(pMsg->param==KEY_NEXT)SetNextFunState();
             if(pMsg->param==KEY_ENTER)SetNextcFunState();
             break;
	case 1:
             if(pMsg->param==KEY_CHA)com.mode++;
             if(pMsg->param==KEY_NEXT){SetNextcFunState();}
             break;
        case 2:
             if(pMsg->param==KEY_CHA)com.baud++;
             if(pMsg->param==KEY_NEXT){SetcFunState(0);}
             break;

       }
	PostMessage(M_REFURBISH,cfun_state);
	break;
   case M_REFURBISH:
   	switch(cfun_state)
       {
       case 30:
             aprintf(0x20,"P3 EL    ");
             break;
        case 31:
             if(com.mode>COM_MODES)com.mode=0;
             aprintf(0x10,"Mod");
             aprintf(0x00,"%3bd",com.mode);
             break;
        case 32:
             if(com.baud>COM_BAUDS)com.baud=0;
             aprintf(0x10,"BPS");
             aprintf(0x00,"%5bd",baudt[com.baud]);
             break;
   	}
  	break;
    }

}

void    s_weightfun(MSG *pMsg )
{
 switch(pMsg->message)
 {
  case M_REFURBISH:
       beep(100);
       scalenow.zero=scalenow.ad;
       ShowWeiFlagEn=1;
       LineEnFlag=1;
       break;
  case M_ADFILOK:
       aprintf(0x00,"%f",scalenow.weight);
       break;
 }
}
Uchar * DisGetonoff(BOOL onoff)
{
 if(onoff)return "  ON  ";
 else return " OFF  ";
}


void SetFunState(Uchar State)
{
	PostMessage(M_REFURBISH,fun_state);
	fun_state=State;
	cfun_state=0;
}
void SetNextFunState()
{
	SetFunState(fun_state+1);
}

void SetcFunState(Uchar State)
{
	PostMessage(M_REFURBISH,cfun_state);
	cfun_state=State;
}
void SetNextcFunState()
{
	SetcFunState(cfun_state+1);
}
float   GetLineWei(BOOL  linedot)
{


}


float   GetTechWei(Uchar  cwei)
{
  return  cwei*pow10(CalSet.cSCapexp-1);
}
/**************************************************************************
*      函数原型: Uchar Dspinit()
*      功    能: 开机时自检
**************************************************************************/
void Dspinit()
{
 Uchar i=0;   //自检
 for(i=0;i<10;i++)
 {
  aprintf(0x20,"%s",dspt[i]);
   lcd_writej(i);
   beep(100);
   delayms(300);
 }
 beep(200);
 lcd_all();
 delayms(300);
 lcd_clr();
 delayms(200);
}


⌨️ 快捷键说明

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