void setupRadio() { printf_begin(); // Setup and configure radio radio.begin(); radio.setAutoAck(1); // Ensure autoACK is enabled radio.enableAckPayload(); // Allow optional ack payloads radio.setRetries(2,15); // Smallest time between retries, max no. of retries radio.setPayloadSize(8); radio.setDataRate(RF24_250KBPS); if( radio.getDataRate() == RF24_250KBPS ) { debugPrint("Radio is available"); radio_hw_available = true; radio.startListening(); // Start listening radio.powerUp(); radio.openWritingPipe(pipes[0]); // Open different pipes when writing. Write on pipe 0, address 0 radio.openReadingPipe(1,pipes[1]); // Read on pipe 1, as address 1 } else { debugPrint("Radio is NOT available"); } //radio.printDetails(); // Dump the configuration of the rf unit for debugging }
void setup(void){ //Prepare the radio module printf("\nPreparing NRF24L01 interface\n"); radio.begin(); radio.setRetries( 15, 15); radio.setChannel(120); radio.enableAckPayload(); //radio.disableCRC(); radio.setAutoAck(true); radio.openWritingPipe(pipes[0]); radio.openReadingPipe(2,pipes[1]); radio.openReadingPipe(3,pipes[2]); radio.openReadingPipe(1,pipes[0]); radio.printDetails(); printf("\nPreparing MySQL interface.\n"); mysql_connect(); if ((mysql1 != NULL)) { sprintf(SQLstring,"CREATE TABLE IF NOT EXISTS CC_SENSOR_DYN (timestamp DATETIME, id INTEGER, temperature FLOAT, value INTEGER);"); if (!mysql_query(mysql1, SQLstring)) { printf("SQL CC_SENSOR_DYN Table is Ok: %s\n",SQLstring); } else { printf("SQL CC_SENSOR_DYN NOk: %s\n",SQLstring); printf("%s\n", mysql_error(mysql1)); } sprintf(SQLstring,"CREATE TABLE IF NOT EXISTS CC_SENSOR_HIST (timestamp DATETIME, id INTEGER, hist_type VARCHAR(1), hist_period INTEGER, value FLOAT);"); if (!mysql_query(mysql1, SQLstring)) { printf("SQL CC_SENSOR_HIST Table is Ok: %s\n",SQLstring); } else { printf("SQL CC_SENSOR_HIST NOk: %s\n",SQLstring); printf("%s\n", mysql_error(mysql1)); } } radio.startListening(); printf("\nNow Listening...\n"); }
void setup(void) { // setup interrupt gpio_export(int_gpio_num); gpio_set_edge(GPIO_STR, "rising", "1"); radio.begin(); // enable dynamic payloads radio.enableAckPayload(); radio.enableDynamicPayloads(); radio.setAutoAck(1); // optionally, increase the delay between retries & # of retries radio.setRetries(15, 15); radio.setDataRate(RF24_2MBPS); radio.setPALevel(RF24_PA_MIN); radio.setChannel(50); radio.setCRCLength(RF24_CRC_16); // Open pipes to other nodes for communication // Open pipe for reading radio.openReadingPipe(0, pipes[0]); radio.openReadingPipe(1, pipes[1]); // Start listening radio.startListening(); // Dump the configuration of the rf unit for debugging radio.printDetails(); }
void setup() { Serial.begin(115200); printf_begin(); Serial.println(F("\n\n** NeoPixelWirelessClient ** \n\n")); Serial.println(F("Reading client configuration....")); if( !readClientConfiguration( (client_configuration_t *)&clientConfig) ) { Serial.println(F("** Error reading client configuration\n")); clientConfig.version = CLIENT_CONFIG_V10; clientConfig.nodeId = 0x01; if( !writeClientConfiguration((client_configuration_t *)&clientConfig) ) { Serial.println(F("** Error writing client configuration\n")); } else { Serial.println(F("Successfully wrote client configuration\n")); } } else { Serial.println(F("Successfully Read Configuration:\n")); } dumpClientConfiguration((client_configuration_t *)&clientConfig); // Setup and configure radio radio.begin(); radio.enableAckPayload(); // enable payload ack radio.enableDynamicPayloads(); // Ack payloads are dynamic payloads setNodeId(clientConfig.nodeId); // radio.openWritingPipe(addresses[1]); // radio.openReadingPipe(1, addresses[0]); // radio.startListening(); // we're the client, so start listening radio.writeAckPayload(1, &message_count, sizeof(message_count)); ++message_count; radio.printDetails(); // Dump the configuration of the rf unit for debugging delay(50); attachInterrupt(0, check_radio, LOW); // Attach interrupt handler to interrupt #0 (using pin 2) on BOTH the sender and receiver if (controller.initialize(50, 2) == false) { } else { controller.fill(CRGB::Black, true); } }
int main(void) { halInit(); chSysInit(); //kruciální řádky - odpojit jtag; nechat jenom swd - sou na nem piny pro SPI1 //premapovat SPI1 na PB3;4;5 RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; AFIO->MAPR |= AFIO_MAPR_SPI1_REMAP; AFIO->MAPR |= 0b010 << 24; #if 1 spiStart(&SPID1, &config); palSetPadMode(config.ssport, config.sspad, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(SPI_SCK_PORT, SPI_SCK_PIN, SPI_SCK_MODE); palSetPadMode(SPI_MISO_PORT, SPI_MISO_PIN, SPI_MISO_MODE); palSetPadMode(SPI_MOSI_PORT, SPI_MOSI_PIN, SPI_MOSI_MODE); #else palSetPadMode(config.ssport, config.sspad, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(SPI_SCK_PORT, SPI_SCK_PIN, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(SPI_MISO_PORT, SPI_MISO_PIN, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(SPI_MOSI_PORT, SPI_MOSI_PIN, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(config.ssport, config.sspad); palClearPad(SPI_SCK_PORT, SPI_SCK_PIN); palClearPad(SPI_MISO_PORT, SPI_MISO_PIN); palClearPad(SPI_MOSI_PORT, SPI_MOSI_PIN); palSetPad(config.ssport, config.sspad); palClearPad(config.ssport, config.sspad); palClearPad(SPI_SCK_PORT, SPI_SCK_PIN); palClearPad(SPI_MISO_PORT, SPI_MISO_PIN); palClearPad(SPI_MOSI_PORT, SPI_MOSI_PIN); palSetPad(SPI_SCK_PORT, SPI_SCK_PIN); palClearPad(config.ssport, config.sspad); palClearPad(SPI_SCK_PORT, SPI_SCK_PIN); palClearPad(SPI_MISO_PORT, SPI_MISO_PIN); palClearPad(SPI_MOSI_PORT, SPI_MOSI_PIN); palSetPad(SPI_MISO_PORT, SPI_MISO_PIN); palClearPad(config.ssport, config.sspad); palClearPad(SPI_SCK_PORT, SPI_SCK_PIN); palClearPad(SPI_MISO_PORT, SPI_MISO_PIN); palClearPad(SPI_MOSI_PORT, SPI_MOSI_PIN); palSetPad(SPI_MOSI_PORT, SPI_MOSI_PIN); palClearPad(config.ssport, config.sspad); palClearPad(SPI_SCK_PORT, SPI_SCK_PIN); palClearPad(SPI_MISO_PORT, SPI_MISO_PIN); palClearPad(SPI_MOSI_PORT, SPI_MOSI_PIN); // #endif palSetPadMode(TEST_LED_PORT, TEST_LED_PIN, PAL_MODE_INPUT); palSetPadMode(TEST_LED_PORT2, TEST_LED_PIN2, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(TEST_LED_PORT, TEST_LED_PIN); palClearPad(TEST_LED_PORT2, TEST_LED_PIN2); s1.Register(); palSetPadMode(GPIOA, 2, PAL_MODE_STM32_ALTERNATE_PUSHPULL); // palSetPad(GPIOA,2); //DBGMCU->CR |= DBGMCU_CR_DBG_TIM2_STOP; pwmStart(&PWMD2, &pwmcfg); pwmEnableChannel(&PWMD2,2,PWM_PERCENTAGE_TO_WIDTH(&PWMD2,5000)); //setup watchdog DBGMCU->CR |= DBGMCU_CR_DBG_IWDG_STOP; IWDG->KR = 0x5555; IWDG->PR = 6; IWDG->RLR = 0xFFF; IWDG->KR = 0xCCCC; #if 1 ser.Init(); rf.begin(); rf.enableAckPayload(); rf.enableDynamicPayloads(); for (int i = 0; i < 5; i++) rf.openReadingPipe(i, pipe + i); rf.startListening(); #endif while (TRUE) { Scheduler::Play(); ser.Loop(); sysTime = chTimeNow(); } return 1; }