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

 
 
> возврат к началу программы из прерывания
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
Ответов
SysRq
сообщение Apr 8 2011, 17:29
Сообщение #2


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(Xenia @ Apr 8 2011, 19:59) *
SysRq, скажите, а зачем нужен wdt_reset() после cli?
Вы правы, пожалуй. Не нужен он. Уберём-с sm.gif

--

Цитата(1100.1010.1011.1010 @ Apr 8 2011, 20:29) *
Не все ясно с __attribute__((noreturn)) void restart(void)
Функция с таким атрибутом имеет пролог поменьше, стека расходует меньше, т.к. не сохраняет call-saved регситры -> выполняется быстрее, и проще учитывать необходимый размер стека.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 8 2011, 17:38
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(SysRq @ Apr 8 2011, 21:29) *
Функция с таким атрибутом имеет пролог поменьше, стека расходует меньше, т.к. не сохраняет call-saved регситры -> выполняется быстрее, и проще учитывать необходимый размер стека.

А вы в самом деле уверены, что cli(), wdt_reset(), wdt_enable(WDTO_15MS) - функции? На мой взгляд, в вашей программе нет никаких call и регистры в ней тоже не используются sm.gif.
Go to the top of the page
 
+Quote Post
SysRq
сообщение Apr 8 2011, 17:54
Сообщение #4


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(Xenia @ Apr 8 2011, 21:38) *
А вы в самом деле уверены, что cli(), wdt_reset(), wdt_enable(WDTO_15MS) - функции? На мой взгляд, в вашей программе нет никаких call и регистры в ней тоже не используются sm.gif.
Из соседней единицы компиляции может быть не видно sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 1100.1010.1011.1010   возврат к началу программы из прерывания   Apr 6 2011, 21:44
- - V_G   Смотря какой процессор и какая у вас конфигурация....   Apr 6 2011, 22:02
- - 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
- - 1100.1010.1011.1010   Спасибо,за ответы!Разобрался,устройство запуст...   Apr 13 2011, 17:40


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 13:51
Рейтинг@Mail.ru


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