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

 
 
> Проблема начального запуска, Некорректный старт ATMega8
Kuznec9999
сообщение May 4 2008, 14:26
Сообщение #1


Участник
*

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



Здравствуйте. Собрал схему - цифровой вольтметр. Включаю питание - всё работает, всё прекрасно измеряет. Поставил фильтрующую ёмкость по питанию (470uF) - схема перестала запускаться!!! Убрал - работает отлично. В общем вопрос следующий: как корректно проводить запуск МК? Неужели только "скачковым" питанием? Или существуют какие-либо методы побороть данную проблему?

Возможно (я почти уверен в этом), это из-за того, что при запуске не очищается ОЗУ (читал на форуме про подобные проблемы). Как стереть ОЗУ (желательно на асм) при инициализации программы?

Генератор внутренний. Частота 1МГц. Может фьюэы? Некорректная инициализация? ...

Сообщение отредактировал Kuznec9999 - May 4 2008, 14:33
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vlad219i
сообщение May 4 2008, 15:50
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(Kuznec9999 @ May 4 2008, 18:26) *
Как стереть ОЗУ (желательно на асм) при инициализации программы?


Примерно так:
ldi xh, high(sram_size) ;очистка памяти (SRAM)
ldi xl, low(sram_size)
ldi zh, high(sram_start)
ldi zl, low(sram_start)
clr r16
clr_ram:st z+, r16
sbiw xh:xl, 1
brne clr_ram
Go to the top of the page
 
+Quote Post
Kuznec9999
сообщение May 4 2008, 17:35
Сообщение #3


Участник
*

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



Цитата(Vlad219i @ May 4 2008, 19:50) *
Примерно так:
ldi xh, high(sram_size) ;очистка памяти (SRAM)
ldi xl, low(sram_size)
ldi zh, high(sram_start)
ldi zl, low(sram_start)
clr r16
clr_ram:st z+, r16
sbiw xh:xl, 1
brne clr_ram

Понял, спасибо, примерно так и сделал. А вообще неочищенная ОЗУ влияет на корректность работы при старте МК? Или очищать её в начале программы (своеобразная инициализация) не обязательно? Я понимаю ОЗУ на то и ОЗУ, чтобы помнить данные только тогда, когда МК запитан, или всё же лучше очистить? И ещё один вопрос, если позволите. Регистры 0-15 - для чего они предназначены? Только для хранения результата умножения? Какие-то они совсем неполноценные - ни записать в них нормально, ни произвести арифметическую операцию..

Сообщение отредактировал Kuznec9999 - May 4 2008, 17:39
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение May 5 2008, 08:20
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(Kuznec9999 @ May 4 2008, 21:35) *
Понял, спасибо, примерно так и сделал. А вообще неочищенная ОЗУ влияет на корректность работы при старте МК? Или очищать её в начале программы (своеобразная инициализация) не обязательно?


Неочищенная оперативка на старт не влияет никак.

Цитата(Kuznec9999 @ May 4 2008, 21:35) *
И ещё один вопрос, если позволите. Регистры 0-15 - для чего они предназначены?


Я использую для всего, что не связано с необходимостью прямой загрузки (или установки/снятия битов) в эти регистры - как правило счетчики, времянки при расчетах, сохранение регистров в прерываниях etc.
В принципе - загружать непосредственные значения в эти регистры тоже можно, но при помощи регистра из верхней половины (примерно так: ldi r16,data \ mov r3,r16) . Коряво, неоптимально по коду и не всегда удобно...
Go to the top of the page
 
+Quote Post
Kuznec9999
сообщение May 5 2008, 10:32
Сообщение #5


Участник
*

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



[quote name='Vlad219i' date='May 5 2008, 12:20' post='406317']
Спасибо. У меня возник ещё один вопрос. В некоем регистре (например R16), хранится значение в диапазоне 0-256 (например, снятое с АЦП). Как преобразовать диапазон 0-256 в 0-80 (т.е фактически, регистр R16 разделить на 3.2). Возможно ли это в принципе?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kuznec9999   Проблема начального запуска   May 4 2008, 14:26
- - Artem_Petrik   Проблема у вас с ресетом. Включите brown-out detec...   May 4 2008, 14:50
|- - Kuznec9999   Цитата(Artem_Petrik @ May 4 2008, 18:50) ...   May 4 2008, 15:23
- - domowoj   Странно. А кондер питание не коротит? Обычно фильт...   May 4 2008, 14:52
|- - chds   Цитата(domowoj @ May 4 2008, 17:52) Стран...   May 4 2008, 15:30
|- - 777777   Цитата(chds @ May 4 2008, 19:30) Но при э...   May 5 2008, 11:33
|- - Kuznec9999   Цитата(777777 @ May 5 2008, 15:33) Для на...   May 5 2008, 12:46
|- - tazik   Цитата(Kuznec9999 @ May 5 2008, 01:35) .....   May 4 2008, 18:59
||- - SasaVitebsk   Цитата(tazik @ May 4 2008, 22:59) Есть та...   May 4 2008, 19:08
||- - tazik   Цитата(SasaVitebsk @ May 5 2008, 03:08) ...   May 4 2008, 19:20
|- - Maik-vs   Цитата(Vlad219i @ May 5 2008, 12:20) В пр...   May 5 2008, 09:18
- - aaarrr   Ну так умножьте на 5 и поделите на 16. Откуда сомн...   May 5 2008, 10:38
|- - Kuznec9999   Цитата(aaarrr @ May 5 2008, 14:38) Ну так...   May 5 2008, 10:50
|- - aaarrr   Цитата(Kuznec9999 @ May 5 2008, 14:50) Да...   May 5 2008, 11:42
- - million68   Редактирование сообщения в Проблема начального зап...   May 5 2008, 11:43


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

 


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


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