pecanpico9/tracker/software/drivers/si4464.h

46 wiersze
1.3 KiB
C
Czysty Zwykły widok Historia

2017-05-30 22:58:20 +00:00
#ifndef __SI4464__H__
#define __SI4464__H__
#include "ch.h"
#include "hal.h"
#include "types.h"
#define RADIO_WRITE_GPIO(state) palWriteLine(LINE_RADIO_GPIO, state)
#define RADIO_READ_GPIO() palReadLine(LINE_RADIO_GPIO)
2017-09-02 03:43:13 +00:00
#define inRadioBand(freq) (RADIO_MIN_FREQ <= (freq) && (freq) <= RADIO_MAX_FREQ)
#define HIGH true
#define LOW false
#define SI4464_STATE_NOCHANGE 0
2017-09-02 03:43:13 +00:00
#define SI4464_STATE_SLEEP 1
#define SI4464_STATE_SPI_ACTIVE 2
#define SI4464_STATE_READY 3
#define SI4464_STATE_READY2 4
#define SI4464_STATE_TX_TUNE 5
#define SI4464_STATE_RX_TUNE 6
#define SI4464_STATE_TX 7
#define SI4464_STATE_RX 8
2017-05-30 22:58:20 +00:00
void Si4464_Init(void);
2017-05-30 22:58:20 +00:00
void Si4464_write(uint8_t* txData, uint32_t len);
void setFrequency(uint32_t freq, uint16_t shift);
void setShift(uint16_t shift);
void setModemAFSK(void);
void setModemOOK(ook_conf_t* conf);
void setModem2FSK(fsk_conf_t* conf);
void setModem2GFSK(gfsk_conf_t* conf);
2017-05-30 22:58:20 +00:00
void setDeviation(uint32_t deviation);
void setPowerLevel(int8_t level);
2017-09-03 00:53:01 +00:00
void startTx(uint16_t size);
2017-05-30 22:58:20 +00:00
void stopTx(void);
void Si4464_shutdown(void);
2017-09-03 00:53:01 +00:00
bool radioTune(uint32_t frequency, uint16_t shift, int8_t level, uint16_t size);
2017-05-30 22:58:20 +00:00
void Si4464_writeFIFO(uint8_t *msg, uint8_t size);
uint8_t Si4464_freeFIFO(void);
uint8_t Si4464_getState(void);
int8_t Si4464_getTemperature(void);
#endif