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

 
 
> Програмный сброс, Как это правильно сделать?
maxus
сообщение Nov 10 2005, 14:17
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 5-04-05
Пользователь №: 3 864



Такой вопрос:
Как програмно (т.е. изнутри) сбросить AVR (ATMega128)? Апаратно понятно - по ресету все регистры переводятся в свои исходные состояния. А програмно? Надо их "вручную" переводить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Nov 10 2005, 14:21
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Использовать вотчдог

примерно так:

__disable_interrupt();
WDTCR=1<<WDE;
DeathLoop: goto DeathLoop;
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Nov 10 2005, 14:35
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Цитата(KRS @ Nov 10 2005, 18:21) *
Использовать вотчдог

примерно так:

__disable_interrupt();
WDTCR=1<<WDE;
DeathLoop: goto DeathLoop;

а точно - вот так (IAR 4.11):
Код
__disable_interrupt();

  // Write logical one to WDCE and WDE
  WDTCR = (1<<WDCE) |(1<<WDE);
  // Turn on WDT
  WDTCR = (1<<WDE) | (1<<WDP0) |(1<<WDP1);

#pragma diag_suppress=Pe236
  while(1);
#pragma diag_default=Pe236


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
KRS
сообщение Nov 11 2005, 07:30
Сообщение #4


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(G}{OST @ Nov 10 2005, 17:35) *
Цитата(KRS @ Nov 10 2005, 18:21) *

Использовать вотчдог

примерно так:

__disable_interrupt();
WDTCR=1<<WDE;
DeathLoop: goto DeathLoop;

а точно - вот так (IAR 4.11):
Код
__disable_interrupt();

  // Write logical one to WDCE and WDE
  WDTCR = (1<<WDCE) |(1<<WDE);
  // Turn on WDT
  WDTCR = (1<<WDE) | (1<<WDP0) |(1<<WDP1);

#pragma diag_suppress=Pe236
  while(1);
#pragma diag_default=Pe236



Только лучше изменить строчку

WDTCR = (1<<WDE) | (1<<WDP0) |(1<<WDP1);

на
WDTCR = (1<<WDE) ;

тогда сброс произойдет намного быстрее
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Nov 11 2005, 08:01
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Цитата(KRS @ Nov 11 2005, 11:30) *
Только лучше изменить строчку

WDTCR = (1<<WDE) | (1<<WDP0) |(1<<WDP1);

на
WDTCR = (1<<WDE) ;

тогда сброс произойдет намного быстрее

А если точно - сброс произойдёт в 8 раз быстрее. wink.gif


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- maxus   Програмный сброс   Nov 10 2005, 14:17
- - KRS   Использ...   Nov 10 2005, 14:21
- - bzx   Ресет контролера происходит в случае: 1. Power-on ...   Nov 10 2005, 14:28
- - maxus   Все понятно. Большее спасибо!!!   Nov 10 2005, 15:06
- - starter48   Цитата(maxus @ Nov 10 2005, 21:17) Такой ...   Nov 10 2005, 16:17
|- - maxus   Этот вариант я вначале и пробовал. В некоторых сит...   Nov 11 2005, 07:11
|- - starter48   Цитата(maxus @ Nov 11 2005, 14:11) Этот в...   Nov 16 2005, 06:06
|- - IgorKossak   Цитата(starter48 @ Nov 16 2005, 08:06) Де...   Nov 16 2005, 07:23
- - BVU   jmp START   Nov 11 2005, 07:19
- - IgorKossak   А если уж очень быстро надо и есть свободный вывод...   Nov 15 2005, 10:51
|- - Igor26   Цитата(IgorKossak @ Nov 15 2005, 14:51) А...   Nov 15 2005, 17:19
|- - maxus   При сбросе все выводы ориентируются на ввод. Не по...   Nov 16 2005, 08:35
|- - Igor26   Цитата(maxus @ Nov 16 2005, 12:35) При сб...   Nov 16 2005, 13:07
- - one_man_show   В таком случае сигнал растягивают ёмкостью   Nov 16 2005, 08:41
|- - BVU   Цитата(one_man_show @ Nov 16 2005, 11:41)...   Nov 16 2005, 09:05
- - one_man_show   Корреция несомненно верная, но в большинстве случа...   Nov 16 2005, 10:14


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

 


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


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