to colorize a colorful pixel with a simple touch using nfc technology

Dependencies:   Chainable_RGB_LED mbed

use Arch, NFC Shield and Grove - Chainable RGB LED to DIY a touch pixel. Then use an Android with NFC support to colorize it.

The project is on https://github.com/Seeed-Studio/TouchPixel

nfc/PN532_SPI.h

Committer:
yihui
Date:
2013-12-27
Revision:
0:88960f3eeb2c

File content as of revision 0:88960f3eeb2c:


#ifndef __PN532_SPI_H__
#define __PN532_SPI_H__

#include "mbed.h"
#include "PN532Interface.h"

class PN532_SPI : public PN532Interface
{
public:
    PN532_SPI(SPI &spi, PinName ss);
    PN532_SPI(SPI *spi, PinName ss);

    virtual void begin();
    virtual void wakeup();
    virtual int8_t writeCommand(const uint8_t *header, uint8_t hlen, const uint8_t *body, uint8_t blen);
    virtual int16_t readResponse(uint8_t buf[], uint8_t len, uint16_t timeout);

private:
    SPI        *_spi;
    DigitalOut  _ss;
    uint8_t     command;

    bool isReady();
    void writeFrame(const uint8_t *header, uint8_t hlen, const uint8_t *body, uint8_t blen);
    int8_t readAckFrame();

    inline void write(uint8_t data) {
        REVERSE_BITS_ORDER(data);
        _spi->write(data);
    }
    inline uint8_t read() {
        uint8_t data =  _spi->write(0);
        REVERSE_BITS_ORDER(data);
        return data;
    }
};

#endif