Здравствуйте. Пытаюсь перетащить проект на freeRTOS. Проект с радиомодулем. Инициализация модуля осталась в setup. Там же инициализировал ртосные задачи. В одной из них передача данных, которая не срабатывает. Есть ли какие то тонкости при работе с freeRTOS? Которые могут повлиять на общение с радиомодулем?
Я конечно мог накосячить при переносе, но косяка в упор не вижу.
Инициализация:
if (!radio.begin()) {
Serial.println(F("radio hardware is not responding!!"));
while (1) {}
}
bool res = radio.isChipConnected();
Serial.println(res); // Вот тут выводит 1, вроде все срабатывает.
radio.setAutoAck(1);
radio.setRetries(0, 15);
radio.enableAckPayload();
radio.setPayloadSize(32);
radio.setChannel(0x60);
radio.setPALevel (RF24_PA_HIGH);
radio.setDataRate (RF24_1MBPS);
radio.powerUp();
radio.openWritingPipe(address[0]);
radio.openReadingPipe(1, address[0]);
radio.stopListening();
Serial.println("Ready");
Задача с общением по радио
void TSinc( void *pvParameters __attribute__((unused)) )
{
for (;;)
{
request = MASPASS;
if(!radio.write(&request, sizeof(request))){
Serial.println("f**k"); // Вот тут выводит что не сработала отправка.
}
if (!radio.available()) {
Serial.println("empty");
} else {
if (radio.available()) {
radio.read(&responseTmp, sizeof(responseTmp));
if(response == PASS){
// Посылаем подтверждение, что синхронизация произошла.
vTaskSuspend(TSinc_Handler);
vTaskResume(TSincOK_Handler);
}
}
}
}
}