This is an involuntary fork, created because the repository would not update mmSPI. SPI library used to communicate with an altera development board attached to four zigbee-header pins.

Dependents:   Embedded_RTOS_Project

Fork of mmSPI by Mike Moore

mmSPI.h

Committer:
gatedClock
Date:
2013-08-25
Revision:
31:ea7b25e494b5
Parent:
30:331c7c7d8bc1
Child:
32:5a5d9525c6c4

File content as of revision 31:ea7b25e494b5:

#ifndef mmSPI_H                                 // include guard.
#define mmSPI_H                                 // include guard.
/*----------------------------------------------//------------------------------
    student   : m-moore
    class     : external SPI interface
    directory : mmSPI
    file      : mmSPI.h
----description---------------------------------//------------------------------    
----notes---------------------------------------//------------------------------ 
    1. the SPI interface pins are routed to the zigbee header.
------------------------------------------------//----------------------------*/
    #include "mbed.h"                           // standard mbed.org class.
    #include "C12832_lcd.h"                     // LCD.
//---defines------------------------------------//------------------------------
    #define mmSPI_MOSI p29                      // SPI interface pin.
    #define mmSPI_MISO p30                      // SPI interface pin.
    #define mmSPI_SCLK p9                       // SPI interface pin.
    #define mmCPU_CLK  p10                      // soft CPU system clock.
/*----------------------------------------------//------------------------------  
------------------------------------------------//----------------------------*/

//==============================================//==============================
    class mmSPI
    {
      public:
             mmSPI();                           // constructor.
            ~mmSPI();                           // destructor.
        void allocations();                     // object allocations.
        void setSPIfrequency (float);           // initializations.
        void setSendBuffer   (char * pcSendBuffer);
        void setReceiveBuffer(char * pcReceiveBuffer);
        void setNumberOfBytes(int    dNumberOfBytes);

                                                // SPI transceive loop.
        void transceive_vector(char cPreCPU, char cPreSPI, char cScan, char cPostCPU);
        
                                                // write/read CPU registers.     
        void write_register(char cRegister, char cValue);
        char read_register (char cRegister);
                                                // write/read CPU main-memory.
        void         write_memory(char cHData, char cLdata, char cAddress);
        unsigned int read_memory (char cAddress);
        
        void step();                            // step the CPU.
        
        void clear_transmit_vector();           // fill with 0.
        
      private:
      
      DigitalOut * pMOSI;                       // SPI pin.
      DigitalOut * pMISO;                       // SPI pin.
      DigitalOut * pSCLK;                       // SPI pin.
      DigitalOut * pCPUclk;                     // soft cpu clock.
      char       * pcSend;                      // SPI transmit vector.
      char       * pcReceive;                   // SPI receive  vector.
      float        fSPIfreq;                    // SPI clock   frequency.
      float        fSPIquarterP;                // SPI quarter period.
      int          dNumBytes;                   // number of SPI bytes.
      int          dLoop01;                     // loop index.
      int          dLoop02;                     // loop index.
    };
//----------------------------------------------//------------------------------
#endif                                          // include guard.