void eskylinkInit() { if(isInit) return; nrfInit(); nrfSetInterruptCallback(interruptCallback); //vTaskSetApplicationTaskTag(0, (void*)TASK_RADIO_ID_NBR); /* Initialise the semaphores */ vSemaphoreCreateBinary(dataRdy); /* Queue init */ rxQueue = xQueueCreate(3, sizeof(CRTPPacket)); eskylinkInitPairing(); /* Launch the Radio link task */ xTaskCreate(eskylinkTask, (const signed char * const)ESKYLINK_TASK_NAME, ESKYLINK_TASK_STACKSIZE, NULL, ESKYLINK_TASK_PRI, NULL); isInit = true; }
void airdrums_debug() { WDTCTL = WDTPW + WDTHOLD; // Stop WDT __delay_cycles(10000); // Clock rate 1MHz if (CALBC1_1MHZ==0xFF) { // If calibration constant erased while(1); // do not load, trap CPU!! } DCOCTL = 0; // Select lowest DCOx and MODx settings BCSCTL1 = CALBC1_1MHZ; // Set DCO DCOCTL = CALDCO_1MHZ; uart_init(); nrfInit(); __delay_cycles(10000); nrfStartRX('!'); // start RX with address '!' __delay_cycles(10000); volatile char a; while(1) { while(!nrfDataReady()); a = nrfGetRXByte(); //art_putc(a); //uart_putc("\n"); } }
void eskylinkInit() { if(isInit==TRUE) return; nrfInit(); nrfSetInterruptCallback(interruptCallback); //vTaskSetApplicationTaskTag(0, (void*)TASK_RADIO_ID_NBR); /* Initialise the semaphores */ vSemaphoreCreateBinary(dataRdy); /* Queue init */ rxQueue = xQueueCreate(3, sizeof(CRTPPacket)); eskylinkInitPairing(); /* Launch the Radio link task */ xTaskCreate(eskylinkTask, (const signed char * const)"EskyLink", configMINIMAL_STACK_SIZE, NULL, /*priority*/1, NULL); isInit = TRUE; }
void airdrums_stick(void){ //initial setup WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1SEL &= 0; P1SEL2 &= 0; P1SEL |= BIT6 + BIT7; // Assign I2C pins to USCI_B0 P1SEL2|= BIT6 + BIT7; // Assign I2C pins to USCI_B0 // LED pin P1DIR |= 0x01; P1OUT = 0x00; // start up i2c bus init_i2c(); //intialise some globals highCount = 0; isDown = FALSE; driftCount=0; // Give the nrf plenty of time to start up; // it gets pissy if you talk to it too early. __delay_cycles(10000); nrfInit(); __delay_cycles(10000); // Start TX with address '!'. // Hard coded because why not nrfStartTX('!'); __delay_cycles(10000); //transmit stuff to set up mpu6050 //set sensitivity levels MPU6050_write_byte(MPU6050_GYRO_CONFIG, MPU6050_FS_SEL_2000); MPU6050_write_byte(MPU6050_ACCEL_CONFIG, MPU6050_AFS_SEL_16G); //wake sensor up by clearing sleep bit MPU6050_write_byte (MPU6050_PWR_MGMT_1, 0); // initialise circular buffer circ_init(); // Do some quick and dirty drift correction findDrift(); // Set up timer interrupts for main loop CCTL0 = CCIE; // CCR0 interrupt enabled TACTL = TASSEL_2 + MC_1 + ID_3; // SMCLK/8, upmode CCR0 = (1000000 / 8 / PROCESS_RATE_HZ); // Set process rate // CCR0 = 417; // 300 Hz _BIS_SR(CPUOFF + GIE); // Enter LPM0 w/ interrupt while(1); }
int main() { uart_init(UART_BAUD_SELECT(UART_BAUD_RATE, F_CPU)); sei(); uart_puts("begin\r\n"); nrfInit(); writeReg(RF_SETUP, SET_RF_SETUP); writeAddr(RX_ADDR_P0, SET_RX_ADDR_P0); writeAddr(TX_ADDR, SET_TX_ADDR); writeReg(DYNPD, SET_DYNPD); writeReg(FEATURE, SET_FEATURE); writeReg(RF_CH, SET_RF_CH); writeReg(CONFIG, SET_CONFIG); startRadio(); uint8_t worked; uint8_t size; char sendbuffer[] = "Testing 1..2..3.. Testing."; size = sizeof (sendbuffer); char receivebuffer[33]; char c; char count[10]; int charbuffer; char payloadlength; // uart_puts(sendbuffer); worked = transmit(sendbuffer, size); if (worked == 1) { uart_puts("Transmit Worked!\r\n"); } else { uart_puts("Transmit Failed.\r\n"); } startRx(); while (1) { payloadlength = dynReceive(receivebuffer); if (payloadlength > 0) { uart_puts("Got something:"); uart_puts(receivebuffer); uart_puts("\r\n"); } else { uart_puts("nothin received\r\n"); } c = uart_getc(); if (!(c & UART_NO_DATA)) { uart_putc(c); } printRegisters(); _delay_ms(2000); } }
// ################ Main Program ################ // int main(void) { //* --------------- Init --------------- *// uOpioidInit(); // Init the Clock //outputPIN(REFOCLK); //REFOCONbits.RODIV = 4; //Div by 8 //REFOCONbits.ROSEL = 1; //PBCLK outputed //REFOCONbits.OE = 1; //enbale ouput //REFOCONbits.ON = 1; //enable REFOCLK //* ------------------------------------ *// //* ----------- Testing Space ---------- *// timerInit(TIMER_2,0); ocSetConfig(OC_1,OC_MODE_PWM|OC_TIMER_2); ocSetConfig(OC_2,OC_MODE_PWM|OC_TIMER_2); ocSetConfig(OC_3,OC_MODE_PWM|OC_TIMER_2); pwmSetPeriod(OC_1,1000); pwmSetPeriod(OC_2,1000); pwmSetPeriod(OC_3,1000); ocStart(OC_1); ocStart(OC_2); ocStart(OC_3); //SPI test outputPIN(COM0_IO2); nrfInit(COM0_SPI_ID, &LATA, COM0_IO2); COM0ControlTransaction.pSlave = pCOM0SlaveControl; COM0ControlTransaction.control.all = 0; COM0ControlTransaction.transferNb = 10; COM0ControlTransaction.txNbRemaining = 10; COM0ControlTransaction.rxNbDone = 0; COM0ControlTransaction.pTX = sourceArray; COM0ControlTransaction.pRX = checkArray; spiStartTransaction(&COM0ControlTransaction); //testBufCtlPtr = rBufCreate(10, sizeof(U8)); //if (uartInit(0,UART_TX_INT_TSR_EMPTY|UART_RX_INT_DATA_READY|UART_MODE_8N1,1250000) == STD_EC_SUCCESS) // setPIN(LED_B); //* ------------------------------------ *// //* ----------- Loop forever ----------- *// for (;;) { if ((sysTick - ledSTRed) >= LED_R_SYSTICK_INTERVAL) { // -- Handle boundary -- // if (ledRed == 255) ledRedDir = 0; else if (ledRed == 0) ledRedDir = 1; // --------------------- // // -- Duty mouvement -- // if (ledRedDir) ledRed++; else ledRed--; // -------------------- // pwmSetDuty(OC_1,ledRed,0xFF); ledSTRed = sysTick; } if ((sysTick - ledSTGreen) >= LED_G_SYSTICK_INTERVAL) { // -- Handle boundary -- // if (ledGreen == 255) ledGreenDir = 0; else if (ledGreen == 0) ledGreenDir = 1; // --------------------- // // -- Duty mouvement -- // if (ledGreenDir) ledGreen++; else ledGreen--; // -------------------- // pwmSetDuty(OC_2,ledGreen,0xFF); ledSTGreen = sysTick; } if ((sysTick - ledSTBlue) >= LED_B_SYSTICK_INTERVAL) { // -- Handle boundary -- // if (ledBlue == 255) ledBlueDir = 0; else if (ledBlue == 0) ledBlueDir = 1; // --------------------- // // -- Duty mouvement -- // if (ledBlueDir) ledBlue++; else ledBlue--; // -------------------- // pwmSetDuty(OC_3,ledBlue,0xFF); ledSTBlue = sysTick; } /* switch(ledID) { case 0: setPIN(LED_R); setPIN(LED_G); setPIN(LED_B); break; case 1: clearPIN(LED_R); setPIN(LED_G); setPIN(LED_B); break; case 2: setPIN(LED_R); clearPIN(LED_G); setPIN(LED_B); break; case 3: setPIN(LED_R); setPIN(LED_G); clearPIN(LED_B); break; case 4: clearPIN(LED_R); clearPIN(LED_G); setPIN(LED_B); break; case 5: clearPIN(LED_R); setPIN(LED_G); clearPIN(LED_B); break; case 6: setPIN(LED_R); clearPIN(LED_G); clearPIN(LED_B); break; case 7: clearPIN(LED_R); clearPIN(LED_G); clearPIN(LED_B); break; default: ledID = 0; } */ //uartSendByte(0,0x55); } //* ------------------------------------ *// }