реклама на сайте
подробности

 
 
> возврат к началу программы из прерывания
1100.1010.1011.1...
сообщение Apr 6 2011, 21:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 22-10-10
Пользователь №: 60 334



Написана простенькая програмка работы с портами ввода/вывода(WinAvr).(последовательно и в определенном порядке включает релюшки). Предусмотрено внешнее прерывание (аварийно отключает релюшки). После наступления прерывания (аварии) необходимо заново проделывать всю программу сначала.Как это сделать?Не дергать же портом ножку ресет?))
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
V_G
сообщение Apr 6 2011, 22:02
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Смотря какой процессор и какая у вас конфигурация.
Если xmega, там есть программный ресет.
Если используется вочдог, можно вызвать ресет бесконечным циклом.
Если не то и не другое, запретить прерывания, настроить стек (если он в начале программы не настраивается), сбросить все настройки периферии (особенно разрешения прерываний), которые могут помешать вашей программе (если авария, может, и периферия расстроена?), и уйти на вектор ресета (0 или бутлоадер)

Сообщение отредактировал V_G - Apr 6 2011, 22:03
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 1100.1010.1011.1010   возврат к началу программы из прерывания   Apr 6 2011, 21:44
- - 1100.1010.1011.1010   ATtiny25.С вочдогом интересная идея,нужно будет по...   Apr 7 2011, 05:18
|- - Палыч   Цитата(1100.1010.1011.1010 @ Apr 7 2011, 09...   Apr 7 2011, 07:35
|- - demiurg_spb   Цитата(Палыч @ Apr 7 2011, 11:35) Кодvoid...   Apr 10 2011, 15:58
- - 1100.1010.1011.1010   чудеса,работает!спасбо!Не могли бы вы пояс...   Apr 7 2011, 10:13
|- - Палыч   Цитата(1100.1010.1011.1010 @ Apr 7 2011, 14...   Apr 7 2011, 10:51
- - 1100.1010.1011.1010   C WDT понятно.Не совсем понял (и не нашел в нете) ...   Apr 7 2011, 11:08
|- - Палыч   Цитата(1100.1010.1011.1010 @ Apr 7 2011, 15...   Apr 7 2011, 11:35
- - SysRq   Код#include <avr/wdt.h> #include <avr/...   Apr 7 2011, 14:08
- - 1100.1010.1011.1010   Тоже прошу немного пояснить ...   Apr 8 2011, 15:54
|- - Палыч   Цитата(1100.1010.1011.1010 @ Apr 8 2011, 19...   Apr 8 2011, 16:24
- - Xenia   SysRq, скажите, а зачем нужен wdt_reset() после cl...   Apr 8 2011, 15:59
- - 1100.1010.1011.1010   Палыч,то что вы пояснили как раз понятно.Не все яс...   Apr 8 2011, 16:29
- - Палыч   Цитата(Xenia @ Apr 8 2011, 19:59) скажите...   Apr 8 2011, 16:45
- - SysRq   Цитата(Xenia @ Apr 8 2011, 19:59) SysRq, ...   Apr 8 2011, 17:29
|- - Xenia   Цитата(SysRq @ Apr 8 2011, 21:29) Функция...   Apr 8 2011, 17:38
|- - SysRq   Цитата(Xenia @ Apr 8 2011, 21:38) А вы в ...   Apr 8 2011, 17:54
- - 1100.1010.1011.1010   Спасибо,за ответы!Разобрался,устройство запуст...   Apr 13 2011, 17:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 17:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016