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

📄 d_ioctrl.c

📁 乐高机器人的源码,开发平台是IAR_for_AVR.
💻 C
字号:
//
// Date init       14.12.2004
//
// Revision date   $Date:: 16-05-06 9:50                                     $
//
// Filename        $Workfile:: d_ioctrl.c                                    $
//
// Version         $Revision:: 11                                            $
//
// Archive         $Archive:: /LMS2006/Sys01/Main/Firmware/Source/d_ioctrl.c $
//
// Platform        C
//


#include  <string.h>
#include  "stdconst.h"
#include  "m_sched.h"
#include  "d_ioctrl.h"
#include  "d_ioctrl.r"

/* Enum related to State */
enum
{
  RX_I2C      = 1,
  TX_I2C      = 2,
  UNLOCK_I2C  = 3,
  WAIT_I2C    = 4
};


static    UBYTE volatile State;

void      dIOCtrlInit(void)
{
  IOCTRLInit;
  State = UNLOCK_I2C;
}

void      dIOCtrlSetPower(UBYTE Power)
{
  INSERTPower(Power);
}

void      dIOCtrlSetPwm(UBYTE Pwm)
{
  INSERTPwm(Pwm);
}

void      dIOCtrlTransfer(void)
{
  UBYTE   B;

  CHECKTime(B);
  if (B)
  {
    switch(State)
    {
      case TX_I2C:
      {
        FULLDataTx;
        State = RX_I2C;
      }
      break;
      case RX_I2C:
      {
        FULLDataRx;
        State = TX_I2C;
      }
      break;
      case UNLOCK_I2C:
      {
        UNLOCKTx;
        State = WAIT_I2C;
      }
      break;
      case WAIT_I2C:
      {

        /* Intermediate state as unlock string is 47  */
        /* characters which is a little more than 1mS */
        State = TX_I2C;
      }
      break;
      default:
      {
        UNLOCKTx;
        State = WAIT_I2C;
      }
      break;
    }
    SETTime;
  }
}



void      dIOCtrlExit(void)
{
  IOCTRLExit;
}

⌨️ 快捷键说明

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