Например TDA7294

Форум РадиоКот • Просмотр темы - ATmega32:программный RESET
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт ноя 27, 2025 19:15:02

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ATmega32:программный RESET
СообщениеДобавлено: Вт окт 21, 2008 20:09:10 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт сен 09, 2008 17:35:48
Сообщений: 239
Откуда: Уфа
Рейтинг сообщения: 0
Как правильно сделать программный ресет т.е. полностью перезапустить контроллер сбросив всю SRAM, программный счетчик и все регистры да и све остальное ?

_________________
спасибо вам за ваше терпение и ваши подробные ответы ! :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 20:24:54 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Если есть свободная нога то ею дернуть РЕСЕТ, наверно конденсатор нужен там.

А програмно наверно АСМ вставкой перейти в начало проги и там вставить очистку СРАМ и всех регистров - наверно в виде циклов.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega32:программный RESET
СообщениеДобавлено: Вт окт 21, 2008 21:16:16 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Вт июл 08, 2008 12:24:17
Сообщений: 1148
Рейтинг сообщения: 0
MegaRazoR писал(а):
... программный ресет т.е. ... сбросив всю SRAM
А разве Атмел обещает сброс содержимого памяти после ресета? Ей-богу, не помню такого... Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega32:программный RESET
СообщениеДобавлено: Вт окт 21, 2008 21:56:16 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
MegaRazoR писал(а):
Как правильно сделать программный ресет т.е. полностью перезапустить контроллер сбросив всю SRAM, программный счетчик и все регистры да и све остальное ?

Есть еще один способ: включить и настроить WDT и зациклиться, в результате по прошествию периода WDT получим честный сброс, однако как уже было отмечено, атмел не обещает очистки памяти по сбросу.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: ATmega32:программный RESET
СообщениеДобавлено: Вт окт 21, 2008 21:59:04 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Yellow Tiger писал(а):
MegaRazoR писал(а):
... программный ресет т.е. ... сбросив всю SRAM
А разве Атмел обещает сброс содержимого памяти после ресета? Ей-богу, не помню такого...

Потому и надо програмно стереть. Компиляторы такое стирание ставят в прогу по-умолчанию обычно.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 22:50:06 
Сверлит текстолит когтями
Аватар пользователя

Зарегистрирован: Вт июл 08, 2008 12:24:17
Сообщений: 1148
Рейтинг сообщения: 0
Компиляторы "C" - ставят (их стандарт обязывает), а Паскаля - нет. ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 22, 2008 07:22:35 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт мар 18, 2008 08:25:31
Сообщений: 108
Откуда: Красноярск
Рейтинг сообщения: 0
Есть прерывание по 0 адресу – то бишь ресет
void (*funcptr)( void ) = 0x0000;//Программный RESET

Обращаешься как funcptr();

_________________
Как зачем мне голова?! Я ей ем!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 22, 2008 08:47:38 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2133
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18429
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
имхо, tych предложил самый верный "полуаппаратный" вариант, а из чисто програмных - вариант с WDT самый правильный. не забывайте, что сброс выполняет ряд операций над регистрами управления периферией, поэтому просто переход на нулевой адрес не равносилен сбросу!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 22, 2008 10:33:56 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт мар 18, 2008 08:25:31
Сообщений: 108
Откуда: Красноярск
Рейтинг сообщения: 0
В принципе - верно. Но переход на адрес 0х0000 дает перезапуск программы начиная с функции main(), что позволяет переопределить переменные и стеки «по новому». Обычно, в связке с обработками неизвестных прерываний и контрольными значениями все работает. Но для верности действительно лучше использовать WDT.

_________________
Как зачем мне голова?! Я ей ем!!!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y