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

📄 tdio.h

📁 good luck to everyone!
💻 H
字号:
// Copyright (c) National Instruments 2008.  All Rights Reserved.
// Do Not Edit... this file is generated!

#ifndef __DIO_h__
#define __DIO_h__

#include "tSystem.h"

namespace nFPGA
{
namespace n6F0EA7B88ADB8E3FD4127A39E3502C6D
{

class tDIO : public tSystem
{
public:
   tDIO(unsigned char sys_index, tRioStatusCode *status);
   ~tDIO();

   static const unsigned char kNumSystems;

   static const unsigned int kDOAddresses [];
   static const unsigned int kFilterSelectAddresses [];
   static const unsigned int kFilterPeriodAddresses [];
   static const unsigned int kOutputEnableAddresses [];
   static const unsigned int kDIAddresses [];
   static const unsigned int kI2CDataReceivedAddresses [];
   static const unsigned int kI2CStatusAddresses [];
   static const unsigned int kSlowValueAddresses [];
   static const unsigned int kPWMPeriodScaleAddresses [];
   static const unsigned int kPulseAddresses [];
   static const unsigned int kI2CStartAddresses [];
   static const unsigned int kBFLAddresses [];
   static const unsigned int kPulseLengthAddresses [];
   static const unsigned int kI2CConfigAddresses [];
   static const unsigned int kPWMValueAddresses [];

   typedef
   union{
      struct{
         unsigned Period : 16;
         unsigned MinHigh : 16;
      };
      struct{
         unsigned value : 32;
      };
   } tPWMConfig;
   typedef
   union{
      struct{
         unsigned Transaction : 1;
         unsigned Done : 1;
      };
      struct{
         unsigned value : 2;
      };
   } tI2CStatus;
   typedef
   union{
      struct{
         unsigned RelayFwd : 8;
         unsigned RelayRev : 8;
         unsigned I2CHeader : 4;
      };
      struct{
         unsigned value : 20;
      };
   } tSlowValue;
   typedef
   union{
      struct{
         unsigned Address : 8;
         unsigned Register : 8;
         unsigned DataToSend : 8;
         unsigned Read : 1;
         unsigned BytesToRead : 2;
      };
      struct{
         unsigned value : 27;
      };
   } tI2CConfig;

   void writeDO(unsigned short value, tRioStatusCode *status);
   unsigned short readDO(tRioStatusCode *status);

   static const unsigned char kNumFilterSelectElements;
   void writeFilterSelect(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status);
   unsigned char readFilterSelect(unsigned char bitfield_index, tRioStatusCode *status);

   static const unsigned char kNumFilterPeriodElements;
   void writeFilterPeriod(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status);
   unsigned char readFilterPeriod(unsigned char bitfield_index, tRioStatusCode *status);

   void writeOutputEnable(unsigned short value, tRioStatusCode *status);
   unsigned short readOutputEnable(tRioStatusCode *status);

   unsigned short readDI(tRioStatusCode *status);

   unsigned int readI2CDataReceived(tRioStatusCode *status);

   tI2CStatus readI2CStatus(tRioStatusCode *status);
   unsigned char readI2CStatus_Transaction(tRioStatusCode *status);
   bool readI2CStatus_Done(tRioStatusCode *status);

   void writeSlowValue(tSlowValue value, tRioStatusCode *status);
   void writeSlowValue_RelayFwd(unsigned char value, tRioStatusCode *status);
   void writeSlowValue_RelayRev(unsigned char value, tRioStatusCode *status);
   void writeSlowValue_I2CHeader(unsigned char value, tRioStatusCode *status);
   tSlowValue readSlowValue(tRioStatusCode *status);
   unsigned char readSlowValue_RelayFwd(tRioStatusCode *status);
   unsigned char readSlowValue_RelayRev(tRioStatusCode *status);
   unsigned char readSlowValue_I2CHeader(tRioStatusCode *status);

   static const unsigned char kNumPWMPeriodScaleElements;
   void writePWMPeriodScale(unsigned char bitfield_index, unsigned char value, tRioStatusCode *status);
   unsigned char readPWMPeriodScale(unsigned char bitfield_index, tRioStatusCode *status);

   void writePulse(unsigned short value, tRioStatusCode *status);
   unsigned short readPulse(tRioStatusCode *status);

   void strobeI2CStart(tRioStatusCode *status);

   void writeBFL(bool value, tRioStatusCode *status);
   bool readBFL(tRioStatusCode *status);

   void writePulseLength(unsigned char value, tRioStatusCode *status);
   unsigned char readPulseLength(tRioStatusCode *status);

   void writeI2CConfig(tI2CConfig value, tRioStatusCode *status);
   void writeI2CConfig_Address(unsigned char value, tRioStatusCode *status);
   void writeI2CConfig_Register(unsigned char value, tRioStatusCode *status);
   void writeI2CConfig_DataToSend(unsigned char value, tRioStatusCode *status);
   void writeI2CConfig_Read(bool value, tRioStatusCode *status);
   void writeI2CConfig_BytesToRead(unsigned char value, tRioStatusCode *status);
   tI2CConfig readI2CConfig(tRioStatusCode *status);
   unsigned char readI2CConfig_Address(tRioStatusCode *status);
   unsigned char readI2CConfig_Register(tRioStatusCode *status);
   unsigned char readI2CConfig_DataToSend(tRioStatusCode *status);
   bool readI2CConfig_Read(tRioStatusCode *status);
   unsigned char readI2CConfig_BytesToRead(tRioStatusCode *status);


   static unsigned short readLoopTiming(tRioStatusCode *status);

   static void writePWMConfig(tPWMConfig value, tRioStatusCode *status);
   static void writePWMConfig_Period(unsigned short value, tRioStatusCode *status);
   static void writePWMConfig_MinHigh(unsigned short value, tRioStatusCode *status);
   static tPWMConfig readPWMConfig(tRioStatusCode *status);
   static unsigned short readPWMConfig_Period(tRioStatusCode *status);
   static unsigned short readPWMConfig_MinHigh(tRioStatusCode *status);


   static const unsigned char kNumPWMValueRegisters;
   void writePWMValue(unsigned char reg_index, unsigned char value, tRioStatusCode *status);
   unsigned char readPWMValue(unsigned char reg_index, tRioStatusCode *status);



private:
   unsigned char _SystemIndex;

   #define DIO_LoopTiming_ADDRESS 0x8380
   #define DIO_PWMConfig_ADDRESS 0x837C

   #define DIO0_DO_ADDRESS 0x8378
   #define DIO0_FilterSelect_ADDRESS 0x831C
   #define DIO0_FilterPeriod_ADDRESS 0x8320
   #define DIO0_OutputEnable_ADDRESS 0x8370
   #define DIO0_DI_ADDRESS 0x8374
   #define DIO0_I2CDataReceived_ADDRESS 0x833C
   #define DIO0_I2CStatus_ADDRESS 0x8334
   #define DIO0_SlowValue_ADDRESS 0x8330
   #define DIO0_PWMPeriodScale_ADDRESS 0x8344
   #define DIO0_Pulse_ADDRESS 0x8328
   #define DIO0_I2CStart_ADDRESS 0x8338
   #define DIO0_BFL_ADDRESS 0x832C
   #define DIO0_PulseLength_ADDRESS 0x8324
   #define DIO0_I2CConfig_ADDRESS 0x8340

   #define DIO0_PWMValue0_ADDRESS 0x836C
   #define DIO0_PWMValue1_ADDRESS 0x8368
   #define DIO0_PWMValue2_ADDRESS 0x8364
   #define DIO0_PWMValue3_ADDRESS 0x8360
   #define DIO0_PWMValue4_ADDRESS 0x835C
   #define DIO0_PWMValue5_ADDRESS 0x8358
   #define DIO0_PWMValue6_ADDRESS 0x8354
   #define DIO0_PWMValue7_ADDRESS 0x8350
   #define DIO0_PWMValue8_ADDRESS 0x834C
   #define DIO0_PWMValue9_ADDRESS 0x8348
   #define DIO1_DO_ADDRESS 0x8318
   #define DIO1_FilterSelect_ADDRESS 0x82BC
   #define DIO1_FilterPeriod_ADDRESS 0x82C0
   #define DIO1_OutputEnable_ADDRESS 0x8310
   #define DIO1_DI_ADDRESS 0x8314
   #define DIO1_I2CDataReceived_ADDRESS 0x82DC
   #define DIO1_I2CStatus_ADDRESS 0x82D4
   #define DIO1_SlowValue_ADDRESS 0x82D0
   #define DIO1_PWMPeriodScale_ADDRESS 0x82E4
   #define DIO1_Pulse_ADDRESS 0x82C8
   #define DIO1_I2CStart_ADDRESS 0x82D8
   #define DIO1_BFL_ADDRESS 0x82CC
   #define DIO1_PulseLength_ADDRESS 0x82C4
   #define DIO1_I2CConfig_ADDRESS 0x82E0

   #define DIO1_PWMValue0_ADDRESS 0x830C
   #define DIO1_PWMValue1_ADDRESS 0x8308
   #define DIO1_PWMValue2_ADDRESS 0x8304
   #define DIO1_PWMValue3_ADDRESS 0x8300
   #define DIO1_PWMValue4_ADDRESS 0x82FC
   #define DIO1_PWMValue5_ADDRESS 0x82F8
   #define DIO1_PWMValue6_ADDRESS 0x82F4
   #define DIO1_PWMValue7_ADDRESS 0x82F0
   #define DIO1_PWMValue8_ADDRESS 0x82EC
   #define DIO1_PWMValue9_ADDRESS 0x82E8

};

}
}

#endif // __DIO_h__

⌨️ 快捷键说明

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