Exemplo n.º 1
0
/**
 * @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);
}
Exemplo n.º 2
0
Arquivo: nerf.c Projeto: easlern/nerf
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();
}
Exemplo n.º 3
0
Arquivo: main.c Projeto: easlern/nerf
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();
    }
}
Exemplo n.º 4
0
Arquivo: main.c Projeto: easlern/nerf
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;
        }
    }
}
Exemplo n.º 5
0
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();
	}
}