Newer
Older
pyenergenie / src / energenie / drv / ino_ook / ino_ook.ino
#include "gpio.h"
#include "spi.h"
//#include "trace.h"
#include "delay.h"
                      // pin number on Raspberry Pi (not GPIO number)
#define SPI_RESET 2   // P1-22 (active high)
#define SPI_CS    3   // P1-26 (active low)
#define SPI_SCLK  4   // P1-23
#define SPI_MOSI  5   // P1-19
#define SPI_MISO  6   // P1-21
                      // P1-20   GND
                      // P1-17   3V3

static SPI_CONFIG spiConfig = {SPI_CS, SPI_SCLK, SPI_MOSI, SPI_MISO, SPI_SPOL0, SPI_CPOL0, SPI_CPHA0, 1000, 1000, 1000};

void setup()
{
  gpio_setout(SPI_RESET);
  gpio_low(SPI_RESET);
  spi_init(&spiConfig);
  Serial.begin(19200);
}

void reset()
{
  gpio_high(SPI_RESET);
  delay(150);
  gpio_low(SPI_RESET);
}

void test2()
{
  unsigned char wr_mode_tx[]  = {0x80 |0x01, 0x0C}; // set mode register to TRANSMITTER
  unsigned char rd_mode[]     = {0x00 |0x01, 0x00}; // read mode register
  
  unsigned char rx[2];

  reset();
  spi_select();
  spi_frame(wr_mode_tx, NULL, sizeof(wr_mode_tx));
  spi_deselect();
  
  spi_select();
  spi_frame(rd_mode, rx, sizeof(rd_mode));
  spi_deselect();
  
  Serial.println(rx[1]);
}


void loop()
{
  while (true)
  {
    test2();
  }
}



//void setup()
//{
//  gpio_init();
//  gpio_setout(SPI_RESET);
//  gpio_setout(SPI_CS);
//  gpio_setout(SPI_SCLK);
//  gpio_setout(SPI_MISO);
//  gpio_setout(SPI_MOSI);  
//}


//void loop()
//{
//  while (true)
//  {
//    gpio_high(SPI_RESET);
//    delaysec(1);
//    gpio_low(SPI_RESET);
//    delaysec(1);
//
//    gpio_high(SPI_CS);
//    delaysec(1);
//    gpio_low(SPI_CS);
//    delaysec(1);
//    
//    gpio_high(SPI_SCLK);
//    delaysec(1);
//    gpio_low(SPI_SCLK);
//    delaysec(1);
//    
//    gpio_high(SPI_MISO);
//    delaysec(1);
//    gpio_low(SPI_MISO);
//    delaysec(1);
//    
//    gpio_high(SPI_MOSI);
//    delaysec(1);
//    gpio_low(SPI_MOSI);
//    delaysec(1);
//  }
//}