• 2017.11.24 Stm8L151-factory


    Marking---------factory fun。。。 

    /**
      ******************************************************************************
      * @file    factory.c
      * @author   Huang 
        * @version V0.1
        * @date    11/2017
      * @brief   This file contains all the lcd digit
      ******************************************************************************
      */ 
    
    /* Includes ------------------------------------------------------------------*/
    #include "stm8l15x.h"
    #include "gd_broad.h"
    #include "digit.h"
    #include "disp.h"
    #include "prog.h"
    #include "key.h"
    #include "temper.h"
    #include "factory.h"
    
    void factory_init(void)
    {
        sys_type=SYS_FACTORY_TYPE;    
        disp_mode_set(DISP_FACTORY_TEMP_VALUE_MODE);
    }
    
    void factory_func(void)
    {
            /*display second*/        
            if(sys_flag.f.t16hz){
                sys_flag.f.t16hz=0;
                if(sys_flag.f.adc_data){
                    sys_flag.f.adc_data=0;
                  temper_func();
              }            
          key_func();
                //digit_d4_d5(key_code);    
              sys_16hz_count++;        
                if((sys_16hz_count&0x1f)==0){
                // 2 seconds routine
            sys_time_update();
                    ADC_SoftwareStartConv(ADC1);
              }
                switch(sys_16hz_count&0x0f){
                  case 0:
                      sys_flag.f.dsp=1;
                   break;
                  case 8:
                      disp_off_func();
                  break;
                }
          }
          if(sys_flag.f.dsp==1){
                sys_flag.f.dsp=0;
                if(disp_last_mode!=disp_mode){
                    disp_last_mode=disp_mode;                
                    LCD_Com_Page(0);
                }
              disp_func();
          }    
    }
    
    void factory_disp_temp_value(unsigned char temp, unsigned char dec)
    {
        if(temp==0||temp>PROG_TEMP_VALUE_80_DEGREE){
            digit_d2_d3_bar();
        }else if(temp<PROG_TEMP_VALUE_ZERO_DEGREE){
            temp = PROG_TEMP_VALUE_ZERO_DEGREE-temp;
          digit_d2(11);
            digit_d3(temp);
            digit_d1(10-dec);        
        }else{
            temp -= PROG_TEMP_VALUE_ZERO_DEGREE;
            if(temp>=10){
              digit_d2_d3(temp);
          }else{
                digit_d2_off();
                digit_d3(temp);
            }
            digit_d1(dec);
        }
        digit_d4_d5_oC();
        COL_OFF();
    }
    
    void factory_disp_func(void)
    {
        switch(disp_mode)
        {
            case DISP_FACTORY_TEMP_VALUE_MODE:
              factory_disp_temp_value(temper_value,temper_dec_value);
            break;
        }
    }
    
    
    void factory_disp_off_func(void)
    {
    }
    
    void factory_disp_mode_set(void)
    {
        disp_sub_mode=0;    
    }
    
    void factory_key_timeout(void)
    {
    }
    
    void key_press_factory_func(void)
    {
    }
    void key_release_factory_func(void)
    {
    }
    void key_hold2s_factory_func(void)
    {
    }
    
    void factory_key_func(void)
    {
            switch(key_status){
                case KEY_WAIT:
                break;
                case KEY_PRESS:
                    key_press_factory_func();
                break;
                case KEY_RELEASE:
                  key_release_factory_func();
                break;
                case KEY_HOLD_2S:
                   key_hold2s_factory_func();
                break;
            }    
        
    }
  • 相关阅读:
    若没有任何实例包含Class Body 则enum被隐式声明为final
    Effective Java —— 多字段下考虑使用建造者模式构建实例
    Effective Java —— 用静态工厂方法代替构造器
    Java动态代理和CGLib代理
    Netty + Spring + ZooKeeper搭建轻量级RPC框架
    Netty学习摘记 —— UDP广播事件
    Netty学习摘记 —— 简单WEB聊天室开发
    Netty学习摘记 —— 心跳机制 / 基于分隔符和长度的协议
    Bugku 杂项 这是一张单纯的图片
    Bugku 杂项 签到题
  • 原文地址:https://www.cnblogs.com/huangbaobaoi/p/7888850.html
Copyright © 2020-2023  润新知