/* Copyright 2009-2011 Oleg Mazurov, Circuits At Home, http://www.circuitsathome.com */ /* MAX3421E functions */ #ifndef _MAX3421E_H_ #define _MAX3421E_H_ //#include //#include #include "Arduino.h" #include "Max3421e_constants.h" class MAX3421E /* : public SPI */ { // byte vbusState; public: MAX3421E( void ); byte getVbusState( void ); // void toggle( byte pin ); static void regWr( byte, byte ); char * bytesWr( byte, byte, char * ); static void gpioWr( byte ); byte regRd( byte ); char * bytesRd( byte, byte, char * ); byte gpioRd( void ); boolean reset(); boolean vbusPwr ( boolean ); void busprobe( void ); void powerOn(); byte IntHandler(); byte GpxHandler(); byte Task(); private: static void spi_init() { uint8_t tmp; // initialize SPI pins pinMode(SCK_PIN, OUTPUT); pinMode(MOSI_PIN, OUTPUT); pinMode(MISO_PIN, INPUT); pinMode(SS_PIN, OUTPUT); digitalWrite( SS_PIN, HIGH ); /* mode 00 (CPOL=0, CPHA=0) master, fclk/2. Mode 11 (CPOL=11, CPHA=11) is also supported by MAX3421E */ SPCR = 0x50; SPSR = 0x01; /**/ tmp = SPSR; tmp = SPDR; } // void init(); friend class Max_LCD; }; #endif //_MAX3421E_H_