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

 
 
> Программно ресетнуть МК
Anub
сообщение Jul 17 2008, 17:12
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 26-05-08
Пользователь №: 37 825



ATMEGA16
Как правильно программно ресетнуть МК? Пишу асм команду wdr - реакция ноль, может что куда нужно прописать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
uriy
сообщение Jul 17 2008, 17:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



В чужом проекте для мега128 видел вот такое
Код
asm volatile("jmp 0x0000");
нормально работает
Go to the top of the page
 
+Quote Post
Anub
сообщение Jul 17 2008, 17:21
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 26-05-08
Пользователь №: 37 825



Цитата(uriy @ Jul 17 2008, 21:17) *
В чужом проекте для мега128 видел вот такое
Код
asm volatile("jmp 0x0000");
нормально работает

Очень интересная строка! Если бы мне такое было нужно я бы написал goto. Мне же ресет нужно сделать(все регистры обнулить) а не прыгнуть в начало программы...
Go to the top of the page
 
+Quote Post
biDE
сообщение Jul 17 2008, 17:27
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 1-02-06
Из: Одесса
Пользователь №: 13 863



Специальной команды на перезапуск МК нет. Можно влючить собаку и не сбрасывать ее. А если нужно выполнять перезапуск в кратчайшее время, можно один из выводов порта соединить со ногой сброса и команодовать
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 17 2008, 17:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Anub @ Jul 17 2008, 19:12) *
Как правильно...

Избитый вопрос. Воспользуйтесь поиском по форуму.


Цитата(biDE @ Jul 17 2008, 19:27) *
..можно

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Deka
сообщение Jul 18 2008, 13:08
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Из всего прочитанного для себя извлёк 3 решения:
1. Переход на нуль с последующей процедурой инициализации ВСЕГО что можно (регистры, память и переферия).
2. Использовать собаку.
3. Использовать одну ножку для генерации сброса, а для формирования необходимой длительности придётся на ресете небольшую схемку спаять или ножкой дёргать супервизор, который сформирует необходимую длинну импульса сброса.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 18 2008, 13:30
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Deka - юзайте собаку - меньше всего нужно будет паять и собирать - пару строчек кода займёт.. Поиском поисчите - кто-то приводил для меги , не помню какой...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jul 18 2008, 13:56
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Kuzmi4 @ Jul 18 2008, 16:30) *
2 Deka - юзайте собаку - меньше всего нужно будет паять и собирать - пару строчек кода займёт.. Поиском поисчите - кто-то приводил для меги , не помню какой...

Под IAR вот такой:
__disable_interrupt(); for(;;);


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Deka
сообщение Jul 19 2008, 08:13
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Эээээ... ну так я юзаю и нет проблем. Я просто для автора вопроса обобщил наверное все способы... А автор вопроса - не я! wink.gif
Go to the top of the page
 
+Quote Post

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

 


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


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