#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);
// }
//}