Обработка исключений
Добавлено: Чт апр 07, 2022 06:33:48
Доброго дня и весеннего всем настроения.
Давным давно делал большой, для себя, проект на ATmege32. Несколько тысяч строк кода и проект готов. Все бы ничего, но в этом изделии использовался датчик температуры/влажности HTU21. Датчик подключается по I2C. И иногда, датчик не отвечал в отведенный тайминг и девайс зависал. Тогда, не долго думая, просто использовал WatcDog и так и использовал эту поделку. При сбоях поделка просто перезагружалась и продолжала работу. Спустя несколько лет, решил вернуться к этой проблеме. первое что пришло в голову, это обработка исключений. ПРошивку писал на С++ в Атмел Студио 7. Вставил конструкцию Try...Catch, атмел студио, даже опознал синтаксис. попробовал собрать и получаю ошибку "exception handling disabled use '-fexceptions' to enable". Хм, вроде бы все понятно, нужно просто включить исключения. Но я как то даже растерялся, где это сделать?
Начал гуглить. И информации практически нет. Где то на форумах даже встречал что эта конструкция не будет работать на AVR, мол камушек не поддерживает.
ну и собственно вопрос, можно ли использовать исключения, если можно то как?
А если нельзя, то может как то по другому решить эту проблему а не перезагружать все устройство.
Давным давно делал большой, для себя, проект на ATmege32. Несколько тысяч строк кода и проект готов. Все бы ничего, но в этом изделии использовался датчик температуры/влажности HTU21. Датчик подключается по I2C. И иногда, датчик не отвечал в отведенный тайминг и девайс зависал. Тогда, не долго думая, просто использовал WatcDog и так и использовал эту поделку. При сбоях поделка просто перезагружалась и продолжала работу. Спустя несколько лет, решил вернуться к этой проблеме. первое что пришло в голову, это обработка исключений. ПРошивку писал на С++ в Атмел Студио 7. Вставил конструкцию Try...Catch, атмел студио, даже опознал синтаксис. попробовал собрать и получаю ошибку "exception handling disabled use '-fexceptions' to enable". Хм, вроде бы все понятно, нужно просто включить исключения. Но я как то даже растерялся, где это сделать?
Начал гуглить. И информации практически нет. Где то на форумах даже встречал что эта конструкция не будет работать на AVR, мол камушек не поддерживает.
ну и собственно вопрос, можно ли использовать исключения, если можно то как?
А если нельзя, то может как то по другому решить эту проблему а не перезагружать все устройство.