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

📄 bttest.inc

📁 乐高机器人的源码,开发平台是IAR_for_AVR.
💻 INC
📖 第 1 页 / 共 4 页
字号:
      pMapDisplay->pTextLines[TEXTLINE_4] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_SELECT_SENSOR;
      pMapDisplay->pTextLines[TEXTLINE_6] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_7] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SENSORS;
      pMapDisplay->UpdateMask            |= TEXTLINE_BITS;

      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        InputValues[Count] = 0x7FFF;
        strcpy((char*)TxtBuffer[Count],"                ");
      }

      State = TSTPRG_SELECT_SENSOR;
    }
    break;

    case TSTPRG_SELECT_SENSOR :
    {
      switch (cUiReadButtons())
      {
        case BUTTON_LEFT :
        {
          State = TSTPRG_TOUCH_SENSOR_INIT;
        }
        break;

        case BUTTON_ENTER :
        {
          pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_SELECT_TYPE;
          pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SOUND_SENSORS;
          pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
          State = TSTPRG_SOUND_SENSOR_SELECT;
        }
        break;

        case BUTTON_RIGHT :
        {
          pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_SELECT_TYPE;
          pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_LIGHT_SENSORS;
          pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
          State = TSTPRG_LIGHT_SENSOR_SELECT;
        }
        break;

        case BUTTON_EXIT :
        {
          State = TSTPRG_INIT;
        }
        break;

      }
    }
    break;

    case TSTPRG_TOUCH_SENSOR_INIT :
    {
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        pMapDisplay->pTextLines[TEXTLINE_3 + Count] = TxtBuffer[Count];
      }
      pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_SENSOR_TOUCH;
      pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SUBTEST_STOP;
      pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        pMapInput->Inputs[Count].SensorType     = SWITCH;
      }
      State = TSTPRG_TOUCH_SENSOR;
    }
    break;

    case TSTPRG_TOUCH_SENSOR :
    {
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        if (InputValues[Count] != pMapInput->Inputs[Count].ADRaw)
        {
          InputValues[Count]    = pMapInput->Inputs[Count].ADRaw;
          sprintf((char*)TxtBuffer[Count]," Input %u = %4u ",(UWORD)Count + 1,(UWORD)InputValues[Count]);
          pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3 + Count);
        }
      }
      if (cUiReadButtons() != BUTTON_NONE)
      {
        State = TSTPRG_SKIP_SENSOR;
      }
    }
    break;

    case TSTPRG_SOUND_SENSOR_SELECT :
    {
      switch (cUiReadButtons())
      {
        case BUTTON_LEFT :
        {
          pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_SENSOR_SOUND_DB;
          for (Count = 0;Count < NO_OF_INPUTS;Count++)
          {
            pMapInput->Inputs[Count].SensorType     = SOUND_DB;
          }
          State = TSTPRG_SOUND_SENSOR_INIT;
        }
        break;

        case BUTTON_ENTER :
        {
          State = TSTPRG_SKIP_SENSOR;
        }
        break;

        case BUTTON_EXIT :
        {
          State = TSTPRG_SKIP_SENSOR;
        }
        break;

        case BUTTON_RIGHT :
        {
          pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_SENSOR_SOUND_DBA;
          for (Count = 0;Count < NO_OF_INPUTS;Count++)
          {
            pMapInput->Inputs[Count].SensorType     = SOUND_DBA;
          }
          State = TSTPRG_SOUND_SENSOR_INIT;
        }
        break;

      }
    }
    break;

    case TSTPRG_SOUND_SENSOR_INIT :
    {
      VolumeSave        = pMapSound->Volume;
      pMapSound->Volume = MAX_VOLUME;
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        pMapDisplay->pTextLines[TEXTLINE_3 + Count] = TxtBuffer[Count];
      }
      pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SOUND_STOP;
      pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
      State = TSTPRG_SOUND_SENSOR;
    }
    break;

    case TSTPRG_SOUND_SENSOR :
    {
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        if (InputValues[Count] != pMapInput->Inputs[Count].ADRaw)
        {
          InputValues[Count]    = pMapInput->Inputs[Count].ADRaw;
          sprintf((char*)TxtBuffer[Count]," Input %u = %4u ",(UWORD)Count + 1,(UWORD)InputValues[Count]);
          pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3 + Count);
        }
      }
      switch (cUiReadButtons())
      {
        case BUTTON_LEFT :
        {
          pMapSound->Freq     =  440;
          pMapSound->Duration =  2000;
          pMapSound->Mode     =  SOUND_TONE;
          pMapSound->Flags   |=  SOUND_UPDATE;
        }
        break;

        case BUTTON_ENTER :
        {
          pMapSound->State    =  SOUND_STOP;
          pMapSound->Volume   =  VolumeSave;
          State               = TSTPRG_SKIP_SENSOR;
        }
        break;

        case BUTTON_EXIT :
        {
          pMapSound->State    =  SOUND_STOP;
          pMapSound->Volume   =  VolumeSave;
          State               = TSTPRG_SKIP_SENSOR;
        }
        break;

        case BUTTON_RIGHT :
        {
          pMapSound->Freq     =  4000;
          pMapSound->Duration =  2000;
          pMapSound->Mode     =  SOUND_TONE;
          pMapSound->Flags   |=  SOUND_UPDATE;
        }
        break;

      }
    }
    break;

    case TSTPRG_LIGHT_SENSOR_SELECT :
    {
      switch (cUiReadButtons())
      {
        case BUTTON_LEFT :
        {
          pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_SENSOR_LIGHT_PASIVE;
          for (Count = 0;Count < NO_OF_INPUTS;Count++)
          {
            pMapInput->Inputs[Count].SensorType     = LIGHT_INACTIVE;
          }
          State = TSTPRG_LIGHT_SENSOR_INIT;
        }
        break;

        case BUTTON_ENTER :
        {
          State = TSTPRG_SKIP_SENSOR;
        }
        break;

        case BUTTON_EXIT :
        {
          State = TSTPRG_SKIP_SENSOR;
        }
        break;

        case BUTTON_RIGHT :
        {
          pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_SENSOR_LIGHT_ACTIVE;
          for (Count = 0;Count < NO_OF_INPUTS;Count++)
          {
            pMapInput->Inputs[Count].SensorType     = LIGHT_ACTIVE;
          }
          State = TSTPRG_LIGHT_SENSOR_INIT;
        }
        break;

      }
    }
    break;

    case TSTPRG_LIGHT_SENSOR_INIT :
    {
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        pMapDisplay->pTextLines[TEXTLINE_3 + Count] = TxtBuffer[Count];
      }
      pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_SUBTEST_STOP;
      pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
      State = TSTPRG_LIGHT_SENSOR;
    }
    break;

    case TSTPRG_LIGHT_SENSOR :
    {
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        if (InputValues[Count] != pMapInput->Inputs[Count].ADRaw)
        {
          InputValues[Count]    = pMapInput->Inputs[Count].ADRaw;
          sprintf((char*)TxtBuffer[Count]," Input %u = %4u ",(UWORD)Count + 1,(UWORD)InputValues[Count]);
          pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_3 + Count);
        }
      }
      if (cUiReadButtons() != BUTTON_NONE)
      {
        State = TSTPRG_SKIP_SENSOR;
      }
    }
    break;

    case TSTPRG_SKIP_SENSOR :
    {
      for (Count = 0;Count < NO_OF_INPUTS;Count++)
      {
        pMapInput->Inputs[Count].SensorType     = NO_SENSOR;
      }
      State = TSTPRG_SENSOR_INIT;
    }
    break;

    case TSTPRG_MOTOR_INIT :
    {
      pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_MOTOR;
      pMapDisplay->pTextLines[TEXTLINE_2] = (UBYTE*)TXT_LINE;
      pMapDisplay->pTextLines[TEXTLINE_3] = (UBYTE*)TXT_MOTOR_HEADER;
      pMapDisplay->pTextLines[TEXTLINE_4] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_6] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_7] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_MOTOR_STOP;

      for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
      {
        OutputValues[Count] = 0x7FFF;
        TestPrgRunMotor(Count,0);
        strcpy((char*)TxtBuffer[Count],"                ");
        pMapDisplay->pTextLines[TEXTLINE_4 + Count] = TxtBuffer[Count];
      }

      pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
      State = TSTPRG_MOTOR;
    }
    break;

    case TSTPRG_MOTOR :
    {
      for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
      {
        if (OutputValues[Count] != (SWORD)TestPrgReadMotor(Count))
        {
          OutputValues[Count] = (SWORD)TestPrgReadMotor(Count);
          sprintf((char*)TxtBuffer[Count],"  %c   %-4d  %4d",(char)Count + 'A',(SWORD)pMapOutPut->Outputs[Count].Speed,OutputValues[Count]);
          pMapDisplay->UpdateMask |= TEXTLINE_BIT(TEXTLINE_4 + Count);
        }
      }
      switch (cUiReadButtons())
      {
        case BUTTON_LEFT :
        {
          for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
          {
            OutputValues[Count] = 0x7FFF;
            TestPrgRunMotor(Count,-50);
          }
        }
        break;

        case BUTTON_ENTER :
        {
          for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
          {
            OutputValues[Count] = 0x7FFF;
            TestPrgRunMotor(Count,0);
          }
        }
        break;

        case BUTTON_EXIT :
        {
          State = TSTPRG_SKIP_MOTOR;
        }
        break;

        case BUTTON_RIGHT :
        {
          for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
          {
            OutputValues[Count] = 0x7FFF;
            TestPrgRunMotor(Count,50);
          }
        }
        break;

      }
    }
    break;

    case TSTPRG_SKIP_MOTOR :
    {
      for (Count = 0;Count < NO_OF_OUTPUTS;Count++)
      {
        TestPrgFloatMotor(Count);
      }
      State = TSTPRG_INIT;
    }
    break;

    case TSTPRG_RCX_INIT :
    {
      pMapDisplay->pTextLines[TEXTLINE_1] = (UBYTE*)TXT_RCX;
      pMapDisplay->pTextLines[TEXTLINE_2] = (UBYTE*)TXT_LINE;
      pMapDisplay->pTextLines[TEXTLINE_3] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_4] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_SELECT;
      pMapDisplay->pTextLines[TEXTLINE_6] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_7] = (UBYTE*)TXT_EMPTY;
      pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_RCX_STOP;

      pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
      State = TSTPRG_RCX_SELECT;
    }
    break;

    case TSTPRG_RCX_SELECT :
    {
      switch (cUiReadButtons())
      {
        case BUTTON_LEFT :
        {
          pMapDisplay->pTextLines[TEXTLINE_5] = (UBYTE*)TXT_SELECT_TYPE;
          pMapDisplay->pTextLines[TEXTLINE_8] = (UBYTE*)TXT_RCX_INPUT_SELECT;
          pMapDisplay->UpdateMask            |= TEXTLINE_BITS;
          for (Count = 0;Count < NO_OF_INPUTS;Count++)
          {
            InputValues[Count] = 0x7FFF;
            strcpy((char*)TxtBuffer[Count],"                ");
          }
          State = TSTPRG_RCX_INPUT_SELECT;
        }
        break;

        case BUTTON_ENTER :
        {
          State = TSTPRG_RCX_DISPLAY_INIT;
        }
        break;

        case BUTTON_RIGHT :
        {
          State = TSTPRG_RCX_MOTOR_INIT;
        }
        break;

⌨️ 快捷键说明

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