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

📄 key.c

📁 Welding Robot controller C Embedded Program on micro-controller.
💻 C
字号:
/******************************************************************************
* welding mobile robot control programme
* keypad processing module
* @author: thai nguyen nhut dien
* @date: may 2006
******************************************************************************/

#define KEY_STOP         10
#define KEY_START        11
#define KEY_PLUS         12
#define KEY_MINUS        13
#define KEY_ENTER        14

void increaseParam() {
  switch (menu) {
    case MENU_MODE:
      if (inMode++ == MAX_MODE) inMode = MIN_MODE;
      break;
    case MENU_SPEED:
      if (inSpeed++ == MAX_SPEED) inSpeed = MIN_SPEED;
      break;
    case MENU_AMP:
      if (inAmp++ == MAX_AMP) inAmp = MIN_AMP;
      break;
    case MENU_GAP:
      if (inGap++ == MAX_GAP) inGap = MIN_GAP;
      break;
    case MENU_SEG:
      if (inSeg++ == MAX_SEG) inSeg = MIN_SEG;
      break;
  }
}

void decreaseParam() {
  switch (menu) {
    case MENU_MODE:
      if (inMode-- == MIN_MODE) inMode = MAX_MODE;
      break;
    case MENU_SPEED:
      if (inSpeed-- == MIN_SPEED) inSpeed = MAX_SPEED;
      break;
    case MENU_AMP:
      if (inAmp-- == MIN_AMP) inAmp = MAX_AMP;
      break;
    case MENU_GAP:
      if (inGap-- == MIN_GAP) inGap = MAX_GAP;
      break;
    case MENU_SEG:
      if (inSeg-- == MIN_SEG) inSeg = MAX_SEG;
      break;
  }
}

#INT_RB
void keyPress() {
  int key;
  delay_ms(100);       // avoid noise
  key = input_b();
  key = key >> 4;
  switch (key) {
    case KEY_STOP:
      run = 0;
      break;
    case KEY_START:
      run = 1;
      break;
    case KEY_PLUS:
      if (run) return;
      increaseParam();
      while (1) {
        delay_ms(100);
        key = input_b();
        key = key >> 4;
        if (key == KEY_PLUS) increaseParam();
        else break;
      }
      break;
    case KEY_MINUS:
      if (run) return;
      decreaseParam();
      while (1) {
        delay_ms(100);
        key = input_b();
        key = key >> 4;
        if (key == KEY_MINUS) decreaseParam();
        else break;
      }
      break;
    case KEY_ENTER:
      if (run) {
        set_adc_channel(0);
        delay_us(10);
        inWeaveSpeed = read_adc();
        set_pwm2_duty(inWeaveSpeed);
        display(inWeaveSpeed);
        set_adc_channel(1);
        delay_us(10);
      }else {
        saveParam(menu);
      }
      break;
  }
}

⌨️ 快捷键说明

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