src/SPI.h
00001 #ifndef SSP_H_
00002 #define SSP_H_
00003 
00004 
00005 /**************************************************************************/
00029 #include "LPC11xx.h"
00030 #include "gpio.h"
00031 
00032 #ifdef __cplusplus
00033   extern "C" {
00034 #endif
00035 
00040 typedef enum {
00041         marySSP1,       
00042         mbedSSP1,       
00043         mbedSSP2        
00044 } SSP_PORT; // Defaults:marySSP1
00045 
00050 typedef enum {
00051         LSBFIRST,               
00052         MSBFIRST                
00053 } SSP_BIT_ORDER;
00054 
00058 typedef enum {
00059         SPI_CLOCK_DIV1,         
00060         SPI_CLOCK_DIV2,         
00061         SPI_CLOCK_DIV4,         
00062         SPI_CLOCK_DIV8,         
00063         SPI_CLOCK_DIV16,        
00064         SPI_CLOCK_DIV32,        
00065         SPI_CLOCK_DIV64,        
00066         SPI_CLOCK_DIV128        
00067 } SSP_CLK_DIVIDER;
00068 
00072 typedef enum {
00073         SPI_MODE0 ,                     
00074         SPI_MODE1 ,                     
00075         SPI_MODE2 ,                     
00076         SPI_MODE3 ,                     
00077         TI_SERIAL_MODE ,        
00078         NXP_I2S                         
00079 } SSP_DATA_MODE;
00080 
00084 class SSP {
00085 private:
00086         SSP_PORT port;                          
00087         SSP_BIT_ORDER bitOrder;
00088         SSP_CLK_DIVIDER divider;
00089         SSP_DATA_MODE dataMode;
00090         int bitlength;
00091 
00092 public:
00093         SSP();          // announce the constructor to initialize
00094         ~SSP();
00095         void begin();
00096         void end() ;
00097         void setBitLength(int bitLength);
00098         void setBitOrder(SSP_BIT_ORDER bitOrder) ;
00099         void setClockDivider(SSP_CLK_DIVIDER divider);
00100         void setDataMode(SSP_DATA_MODE mode);
00101         unsigned long transfer(unsigned long txdata) ;
00102 };
00103 
00104 
00105 // lowlevel
00106 void ssp_begin(SSP_CLK_DIVIDER divider,SSP_DATA_MODE dataMode,int bitLength);
00107 unsigned long ssp_transfer(unsigned long txdata);
00108 
00109 
00110 
00111 extern SSP SPI;
00112 
00113 
00114 #ifdef __cplusplus
00115   }
00116 #endif
00117 
00118 
00119 #endif /* SSP_H_ */
 全て クラス ファイル 関数 変数 列挙型 列挙型の値 マクロ定義