备份.txt

来自「时间触发式单片机最小系统」· 文本 代码 · 共 85 行

TXT
85
字号
*----------------------------------------------*-
 Mytask.c
 create my own task
-*----------------------------------------------*/
#include"main.h"
#include"mytask.h"

#define state1 0x01
#define state2 0x02
#define state3 0x03
#define state4 0x04
uchar state;   
void Mytask_Init(void)   
{   
 P3=0xff;                      
 state=state1;   
}                                    
void key_scan(void)                          //利用 state machine 进行键盘扫描
{    
  static uchar erect_measure_count=0;        //垂直分辨率计数器
  switch(state)
     {
     case state1:
        if(!(key0&&key1&&key2&&key3))        //低电平时表示被按下   
          state=state2;  
        else      
          state=state1; 
         break;

     case state2:
        if(!key0)
          state=state3;
        else if(!key1)
          state=state3;
        else if(!key2)
          state=state3;
        else if(!key3)
          state=state3;
        else
           state=state1;
         break;

     case state3:
        if(key0)
          {
           measure_modify=0;
           delay4us();
           measure_modify=1;
           delay4us();
           state=state1;
           break;       
          }
        else if(key1)
          { 
           erect_measure_count++;        //通过变量的自加来达到模拟开关计数的目的
           if(erect_measure_count==4)    
              erect_measure_count=0;
            switch(erect_measure_count)
               {
                 case 0:
                   switch_modify0=0;
                   switch_modify1=0;
                   break;
                 case 1:
                   switch_modify0=0;
                   switch_modify1=1;
                   break;
                 case 2:
                   switch_modify0=1;
                   switch_modify1=0;
                   break;
                 case 3:
                   switch_modify0=1;
                   switch_modify1=1;
                   break;
               }
            state=state1;
           }
        else
            state=state3;

         break;
      }   
}

⌨️ 快捷键说明

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