Ср ноя 21, 2018 18:08:55
Ср ноя 21, 2018 18:54:22
Ср ноя 21, 2018 19:36:13
Пн янв 28, 2019 14:14:49
/*
* SI4432.c
*
* Created: 09.12.2018 20:38:02
* Author :
*/
#include "main.h"
void rx_on(void)
{
unsigned int i;
unsigned int length;
unsigned char payload[8];
if (BitIsClear(PIND,2)) // Поступило прерывание
{
ItStatus1 = SpiReadRegister(0x03); //Чтение статусных регистров
ItStatus2 = SpiReadRegister(0x04);
if( BitIsSet(ItStatus1, 0) )// Если произошла ошибка CRC.
{
SpiWriteRegister(0x07, 0x01); // READY Mode (Xtal is ON)
SpiWriteRegister(0x08, 0x02); //сброс RX FIFO
SpiWriteRegister(0x08, 0x00);
usart_transmit('E'); // Передаем ошибку
SpiWriteRegister(0x07, 0x05); //включение приёмника
}
else if( BitIsSet(ItStatus1, 1) ) // Принят валидный пакет.
{
SpiWriteRegister(0x07, 0x01); //READY Mode (Xtal is ON)
length = SpiReadRegister(0x4B); //Чтение длины принятых данных
//usart_transmit(SpiReadRegister(0x4B)); // Передаем длину пакета данных
//Обработка принятых данных из RX FIFO
for(i=0; i<length; i++)
{
payload[i] = SpiReadRegister(0x7F); //чтение FIFO Access регистра
}
usart_transmit(payload[0]);
usart_transmit(payload[1]);
usart_transmit(payload[2]);
usart_transmit(payload[3]);
usart_transmit(payload[4]);
usart_transmit(payload[5]);
usart_transmit(payload[6]);
usart_transmit(payload[7]);
}
}
//сброс RX FIFO
SpiWriteRegister(0x08, 0x02);
SpiWriteRegister(0x08, 0x00);
//----------//
SpiWriteRegister(0x07, 0x05); //включение приёмника
}
int main(void)
{
extern unsigned char ItStatus1;
extern unsigned char ItStatus2;
//----------
port_init(); // Инициализация портов МК
spi_ini(); // Инициализация SPI
//SI4432_ini_TX(); // Инициализация передатчика
SI4432_ini_RX(); // Инициализация приёмника
usart_ini(8); // Инициализация USART, скорость 115200
//----------
while (1)
{
//tx_on();
rx_on();
}
}
Вт апр 02, 2019 22:12:09
Чт янв 18, 2024 16:27:50
pdu length = 10 bytes
pdu vector contents =
0000: f1 eb 24 a7 05 97 60 06 00 a9
************************************
A9 EB 24 A7 05 97 60 06 00 A9
pdu length = 10 bytes
pdu vector contents =
0000: 00 01 02 03 04 05 06 07 08 09
************************************