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

 
 
> сброс atmega
siworker
сообщение Sep 24 2007, 12:16
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 24-04-07
Пользователь №: 27 280



а как можно программно сбросить Atmega 128? только без WatchDog т.к. очень медленно. надо быстрее
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Sep 24 2007, 12:44
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Код
void (*fn_reset)(void) = NULL;
...
void my_fn(void)
{
...
if(error)
{
fn_reset();
}
...
}


--------------------
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 24 2007, 22:08
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(prottoss @ Sep 24 2007, 14:44) *
Код
void (*fn_reset)(void) = NULL;
...
if(error)
{
    fn_reset();
}
...

А вот так:
Код
#define FN_RESET ((void (*)()) 0)
...
  if(error) {
     FN_RESET();
  }
...

не сожрёт лишнего ОЗУ на переменную fn_reset
Только этого мало - сначала надо прерывания запретить и привести вручную все регистры устройств в исходное состояние. И того может не хватить - например, если не ошибаюсь, в USART незавершённая передача будет продолжать молотить даже если TXEN снять, т.е. будет не полный эквивалент аппаратного сброса.
В каждом конкретном случае надо очень аккуратно смотреть.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
prottoss
сообщение Sep 25 2007, 11:06
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(ReAl @ Sep 25 2007, 06:08) *
А вот так:
Согласен, так лучше. А IO можно быстро обнулить в небольшом цикле. И молотить ничего не будет, ибо TXEN = 0, а порт IO настроится на ввод без пуллап-резистора. ТОже с остальными интерфейсами.


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:05
Рейтинг@Mail.ru


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