mrf24j40/src/driver.h

53 lines
1.2 KiB
C++
Executable File

#pragma once
#include "mrf24j.h"
#include <pigpio.h>
#if defined __AVR_ATmega328P__
#define SPI_DDR DDRB
#define SPI_PORT PORTB
#define SPI_SCK PB5
#define SPI_MISO PB4
#define SPI_MOSI PB3
#define SPI_CS PB2
#define RESET_DDR DDRB
#define RESET_PORT PORTB
#define RESET PB0
#define WAKE_PORT PORTB
#define WAKE_DDR DDRB
#define WAKE_PIN PB1
#define INTERRUPT ISR(INT0_vect)
#elif defined __AVR_ATmega32__ || defined __AVR_ATmega16__
#define SPI_PORT PORTB
#define SPI_DDR DDRB
#define SPI_SCK PB7
#define SPI_MOSI PB5
#define SPI_CS PB4
#define RESET_DDR DDRB
#define RESET_PORT PORTB
#define RESET PB0
#define WAKE_PORT PORTB
#define WAKE_DDR DDRB
#define WAKE_PIN PB1
#define INTERRUPT ISR(INT2_vect)
#elif defined RASPBERRYPI
#endif
#define RESET 24 //24
#define SPI_CS 8 //8
#define INT 2 //25
namespace driver
{
void init(Mrf24j *mrf);
uint8_t transfer(uint8_t data);
inline void cs_low() {gpioWrite(SPI_CS, 0);}
inline void cs_high() {gpioWrite(SPI_CS, 1);}
void wake();
void reset();
} // namespace spi