Не все компиляторы, и не всегда ошибки. Например, на сях нет исключений, и на каждой строчке писать if ((res = f()) != ok) return res; намного лаконичнее, чем res = f(); if (res != ok) return res; в две строчки... Хотя я тоже не люблю такие конструкции...
Костыль, но тянуть 64-и-более-разрядные вычисления из-за большого динамического диапазона (например в модемах) - дорогое удовольствие. И постоянно следить, чтобы разрядности хватало... На FPGA - понятное дело, а на MCU более 32 разрядов жутко медленно, float работает за 1 такт. Если тригонометрия табличная, то взять значение - тоже единицы тактов
На STM32x4 есть есть FPU, и фиксированная запятая работает в итоге медленнее, чем плавающая. Ну и памяти там валом, чтобы хранить таблицы, а потом (если вдруг надо очень точно) интерполировать между соседними точками...
оо, еще как устарел. Для простых решений - ок, но у него много недостатков... Всего 2 типа данных (bool и int16), никакой информации о назначении канала, нет отчетов об изменениях, для RTU - невозможность определения запрос или ответ на линии итп... Если посмотреть на реализации протокола в оборудовании, то о совместимости на уровне данных можно забыть
Помнится, что LoRa не позволяет на одном канале и SF передавать несколько сообщений одновременно. Количество разрешенных каналов очень ограничено. Дальность передачи большая. Так что, как количество абонентов увеличится, качество связи резко упадет.
Вообще, если хорошо разобраться с атмегами, то можно сделать очень даже энергоэффективное решение. Во-первых, перейти от 8МГц кварца к встроенному 8МГц генератору + кварц 32768Гц для таймера/RTC. Это позволит провалиться в глубокий сон, и просыпаться по часовому таймеру, например 16 раз в секунду для опроса датчиков/кнопок итп. Средний ток устройства у меня был около 15мкА. Во-вторых, отказаться от стабилизаторов - меги имеют достаточный диапазон питания, а тот же трансивер можно запитывать только на время работы.Хорошие были время 8-биток....
Не все компиляторы, и не всегда ошибки. Например, на сях нет исключений, и на каждой строчке писать if ((res = f()) != ok) return res; намного лаконичнее, чем res = f(); if (res != ok) return res; в две строчки... Хотя я тоже не люблю такие конструкции...
Костыль, но тянуть 64-и-более-разрядные вычисления из-за большого динамического диапазона (например в модемах) - дорогое удовольствие. И постоянно следить, чтобы разрядности хватало... На FPGA - понятное дело, а на MCU более 32 разрядов жутко медленно, float работает за 1 такт. Если тригонометрия табличная, то взять значение - тоже единицы тактов
На STM32x4 есть есть FPU, и фиксированная запятая работает в итоге медленнее, чем плавающая. Ну и памяти там валом, чтобы хранить таблицы, а потом (если вдруг надо очень точно) интерполировать между соседними точками...
оо, еще как устарел. Для простых решений - ок, но у него много недостатков... Всего 2 типа данных (bool и int16), никакой информации о назначении канала, нет отчетов об изменениях, для RTU - невозможность определения запрос или ответ на линии итп... Если посмотреть на реализации протокола в оборудовании, то о совместимости на уровне данных можно забыть
CO2 за последние годы внезапно стал самым вредным для природы газом, и ничем не перерабатывается... Так и с газировки скоро доп плату будут брать...
Помнится, что LoRa не позволяет на одном канале и SF передавать несколько сообщений одновременно. Количество разрешенных каналов очень ограничено. Дальность передачи большая. Так что, как количество абонентов увеличится, качество связи резко упадет.
Вообще, если хорошо разобраться с атмегами, то можно сделать очень даже энергоэффективное решение. Во-первых, перейти от 8МГц кварца к встроенному 8МГц генератору + кварц 32768Гц для таймера/RTC. Это позволит провалиться в глубокий сон, и просыпаться по часовому таймеру, например 16 раз в секунду для опроса датчиков/кнопок итп. Средний ток устройства у меня был около 15мкА. Во-вторых, отказаться от стабилизаторов - меги имеют достаточный диапазон питания, а тот же трансивер можно запитывать только на время работы.Хорошие были время 8-биток....