/** * @init transceiver */ int cmd_its(int argc, char **argv) { (void) argc; (void) argv; puts("Init Transceiver\n"); /* initialize transceiver device */ if (nrf24l01p_init(&nrf24l01p_0, SPI_PORT, CE_PIN, CS_PIN, IRQ_PIN) < 0) { puts("Error in nrf24l01p_init"); return; } /* create thread that gets msg when data arrives */ if (thread_create( rx_handler_stack, sizeof(rx_handler_stack), PRIORITY_MAIN - 1, 0, nrf24l01p_rx_handler, 0, "nrf24l01p_rx_handler") < 0) { puts("Error in thread_create"); return; } /* setup device as receiver */ if (nrf24l01p_set_rxmode(&nrf24l01p_0) < 0) { puts("Error in nrf24l01p_set_rxmode"); return 1; } return cmd_print_regs(0, 0); }
void nerf_init (volatile unsigned char* hostTris, volatile unsigned char* hostLat, volatile unsigned char* hostPort, volatile unsigned char* nrfTris, volatile unsigned char* nrfLat, volatile unsigned char* nrfPort, uint8_t* myAddress){ GpioProvider standardProvider = gpioProvider_createStandardGpioProvider (hostTris, hostLat, hostPort); bitbang_init (standardProvider); nrf24l01p_init (NERF_MAX_MESSAGE_LENGTH, nrfTris, nrfLat, nrfPort, 0, 1, 2, 3, 4, 5); nrf24l01p_listenForMessage (myAddress); for (unsigned x = 0; x < NERF_ADDRESS_LENGTH; x++) nerf_targetAddress [x] = 0x00; nerf_clearOutgoingMessage(); nerf_clearIncomingMessage(); }
void loopSendingTestMessage(){ TRISC = 0x00; message [8] = 0x00; nrf24l01p_init (8, &TRISB, &LATB, &PORTB, 0, 1, 2, 3, 4, 5); while(1) { LATC = 0xff; nrf24l01p_sendMessage(receiverAddress, message); LATC = 0x00; sleepForABit(); } }
void loopReceivingTestMessage(){ TRISC = 0x00; LATC = 0x00; nrf24l01p_init (8, &TRISB, &LATB, &PORTB, 0, 1, 2, 3, 4, 5); nrf24l01p_listenForMessage(receiverAddress); while (1) { for (unsigned int x = 0; x < 9; x++) message [x] = 0x00; if (nrf24l01p_isMessageWaiting()){ nrf24l01p_getMessage (message); if (message [0] == 'T') LATC = 0xff; } } }
int main(void) { ROM_FPUEnable(); ROM_FPULazyStackingEnable(); ROM_SysCtlClockSet( SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); SysTickPeriodSet(SysCtlClockGet() / TICKFREQ); //tickfreq in Hz SysTickIntEnable(); SysTickEnable(); #ifdef DEBUG InitConsole(); #endif ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART4); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART3); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); ROM_IntMasterEnable(); ROM_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3); GPIOPinConfigure(GPIO_PC6_U3RX); GPIOPinConfigure(GPIO_PC7_U3TX); GPIOPinConfigure(GPIO_PB0_U1RX); GPIOPinConfigure(GPIO_PB1_U1TX); ROM_GPIOPinTypeUART(GPIO_PORTC_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7); ROM_GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1); ROM_UARTFIFOEnable(UART1_BASE); ROM_UARTFIFOEnable(UART3_BASE); ROM_UARTConfigSetExpClk(UART3_BASE, ROM_SysCtlClockGet(), 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); ROM_UARTConfigSetExpClk(UART1_BASE, ROM_SysCtlClockGet(), 38400, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); ROM_IntEnable(INT_UART1); ROM_UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_RT); // ONLY recieve inturrupt ROM_IntEnable(INT_UART3); ROM_UARTIntEnable(UART3_BASE, UART_INT_RX | UART_INT_RT); // ONLY recieve inturrupt I2CSetup(I2C0_MASTER_BASE, true); setupServos(); UARTprintf("init"); nrf24l01p_init(3); nrf24l01p_setRADDR((uint8_t *) "Boat"); nrf24l01p_setPayLoad(DATA_BUFFER_MAX); nrf24l01p_setChannel(1); nrf24l01p_config(); nrf24l01p_setTADDR((uint8_t *) "Base"); // nrf24l01p_send((unsigned char *) &"Init"); GPIOPortIntRegister(GPIO_PORTA_BASE, portAIntHandler); GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_5, GPIO_FALLING_EDGE); GPIOPinIntEnable(GPIO_PORTA_BASE, GPIO_PIN_5); unsigned char p = 0; nrf24l01p_readRegister(0x00, &p, 1); UARTprintf(" "); while (1) { sortGPSSentence(); } }