AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
08.02.2013, 17:14
|
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: RESET в AVR
Сообщение от ForcePoint
|
Мануал к нему есть? Выложите сюда, посмотрим наискосок.
|
Мануал к чему?
|
|
|
|
08.02.2013, 17:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: RESET в AVR
Сообщение от papa_n
|
Мой МК имеет 4 ре Uart -a
|
Ну и зачем действие из десятка строк превращать в нагромождение непонятно какого кода? Смотрите прерывания.
|
|
|
|
08.02.2013, 17:17
|
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: RESET в AVR
Сообщение от omercury
|
Я б туды volatile дописал.
UPD:
А зачем его вообще читать?
Обычно делается так:
Код:
|
if (MCUSR & _BV(имя флага))код... |
|
Как уже было сказано выше... читать надо до пролога в секции _no_init(gcc)
В CVAVR такого нету
Как я понял
|
|
|
|
08.02.2013, 17:24
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: RESET в AVR
Сообщение от papa_n
|
Выше кто то написал что надо ...
|
Я думаю, что
Последний раз редактировалось SasaVitebsk; 08.02.2013 в 17:29.
|
|
|
|
08.02.2013, 17:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: RESET в AVR
Как уже было сказано выше, он понадобится только когда МК зависнет и собака его сбросит.
Вам не нужен MCUSR.
|
|
|
|
08.02.2013, 17:35
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: RESET в AVR
Не знаю как в CV, но по крайней мере в других компиляторах все порты проца и так объявлены как volatile. Поэтому никаких занесений во временную переменную производится не должно. Как говорил великий Мао "Ёлка растёт вверх. И это правильно." ![Очень смешно](images/smilies/icon_veryhappy.gif)
Вам всё это не надо. Всё что вы хотите делается посредством прерываний. wdt срабатывает асинхронно и ч/з значительное время. Настолько значительное, что вы не сможете обработать никакие символы.
|
|
|
|
08.02.2013, 17:35
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: RESET в AVR
Сообщение от omercury
|
Я б туды volatile дописал.
|
Зачем? И так должно считаться, если дальше используется...
|
|
|
|
08.02.2013, 17:50
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: RESET в AVR
Сообщение от SasaVitebsk
|
wdt срабатывает асинхронно и ч/з значительное время. Настолько значительное, что вы не сможете обработать никакие символы.
|
Время не такое уж и большое бывает: если был сброс по WDT, то мега запускается с включённым вотчдогом, настроенным на минимальный период (так у мег 48/88/168 сделано).
|
|
|
|
08.02.2013, 18:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: RESET в AVR
Сообщение от SasaVitebsk
|
все порты проца и так объявлены как volatile.
|
Порты, а не переменные.
Ну хочет ТС именно считать регистр, ну хоть тресни.
Сообщение от _Артём_
|
Зачем? И так должно считаться, если дальше используется...
|
Должно, да не обязано. Компилятор легко может соптимизировать чтение из статуса.
|
|
|
|
09.02.2013, 00:50
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: RESET в AVR
Сообщение от omercury
|
Порты, а не переменные.
|
MCUSR не переменная а регистр процессора. И он volatile по определению.
2 _Артём_ ну посчитай сам насколько "не такое уж большое". Посчитай время сработки + время рестарта (посмотри фузы) + время первичной инициализации переменных, необходимыхдля запуска. Особенно если ты из Си работаешь. Компилятор для начала все переменные обнулит, а остальные проинициализирует в скрытой секции. Масштабы будут сотня милисекунд, по-минимуму.
Да и главное это всё совершенно излишне. wdt предназначен для обработки зависаний проца.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:16.
|
|