| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #include <stdio.h>
- #include <string.h>
- #include "myRadio.h"
- #include "spi.h"
- //------------
- #include "RF.h"
- static rfRxCallBack rxCb;
- static uint8_t rfMode = 0;
- static uint8_t rfPower = RF8dBm;
- rfRxPacket_ts rfRxPacket;
- void myRadio_delay(uint32_t time_ms)
- {
- delay1ms(time_ms);
- }
- void myRadio_init(int agr0, void *agr1_ptr)
- {
- myRadio_delay(1000);
- spi_init();
- RF_Init(rfPower);
- myRadio_delay(100);
- if ((rfRxCallBack )agr1_ptr)
- {
- rxCb = (rfRxCallBack )agr1_ptr;
- }
- }
- void myRadio_abort(void)
- {
- rfMode = 0;
- RF_Reset();
- }
- void myRadio_transmit(rfTxPacket_ts *packet)
- {
- if (rfMode != 1)
- {
- RF_TxMode();
- }
- rfMode = 1;
- printf("send data:%s\n", packet->payload);
- RF_TxData(packet->payload, PAYLOAD_WIDTH);
- }
- void myRadio_receiver(void)
- {
- rfMode = 2;
- RF_RxMode();
- printf("enter to recv\n");
- }
- void myRadio_receiverSync(rfRxPacket_ts *packet)
- {
- }
- uint32_t myRadio_getFrequency(void)
- {
- }
- void myRadio_setFrequency(uint32_t freq)
- {
-
- }
- int8_t myRadio_getTxPower(void)
- {
- return rfPower;
- }
- void myRadio_setTxPower(int8_t power)
- {
- rfPower = power;
- }
- void myRadio_setCtrl(controlMode_te mode, uint32_t value)
- {
- switch (mode)
- {
- case RADIO_EXT_CONTROL_TX_UNMODULATED:
- {
- rfMode = 3;
- RF_Carrier(0, rfPower);
- }
- break;
- case RADIO_EXT_CONTROL_RX_SENSITIVITY:
- {
- rfMode = 4;
- }
- break;
- default:
- break;
- }
- }
- void myRadio_process(void)
- {
- if (rfMode >= 3)
- {
- return;
- }
-
- if (!rfMode)
- {
- return;
- }
- uint8_t status = RF_GetStatus();
- if ((!status) || (status == 0xff))
- {
- return;
- }
- printf("status:%x rfMode:%x\n", status, rfMode);
- if (status & TX_DS_FLAG)
- {
- printf("TX_DS_FLAG\n");
- RF_ClearFIFO();
- RF_ClearStatus();
- rfMode = 0;
- rxCb(TX_STA_SECCESS, rfRxPacket);
- }
- else if (status & MAX_RT_FLAG)
- {
- printf("MAX_RT_FLAG\n");
- rfMode = 0;
- RF_ClearFIFO();
- RF_ClearStatus();
- rxCb(TX_STA_SECCESS, rfRxPacket);
- }
- else if (status & RX_DR_FLAG)
- {
- printf("RX_DR_FLAG\n");
- uint8_t ucPayload[PAYLOAD_WIDTH];
- memset(rfRxPacket.payload, 0, sizeof(rfRxPacket.payload));
- RF_ReadBuf(R_RX_PAYLOAD, rfRxPacket.payload, PAYLOAD_WIDTH); // 将接收到的数据读出到ucPayload
- RF_ClearFIFO();
- RF_ClearStatus();
- rfMode = 0;
- if (rxCb)
- {
- rxCb(RX_STA_SECCESS, rfRxPacket);
- }
- }
- else if (status & RX_TX_FLAG)
- {
- printf("RX_TX_FLAG\n");
- rfMode = 0;
- RF_ClearFIFO();
- RF_ClearStatus();
- }
- }
|