МК Atmega не забывает значения??

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

МК Atmega не забывает значения??

Сообщение Alerr »

Здравствуйте. Господа, выявилась одна странность. У меня мк атмега 16,(собрал часы-таймер). Для операций использовал переменные типа инт. Почему после снятия питания с контроллера, а затем подачи на него питания значения переменных не обнуляются?????? Но при подаче питания на ресет все обнуляется??
Аватара пользователя
DiGiCat
Друг Кота
Сообщения: 4793
Зарегистрирован: Пт июл 11, 2008 09:42:35
Откуда: Made in USSR

Re: МК Atmega не забывает значения??

Сообщение DiGiCat »

Контроллеры тут, сюда не все по таким вопросам ходят... тему там запостил бы...
Схемы нет, программа какая там непонятно... где, во флеш или еепром?
scio me nihil scire...
_______________________

Изображение <= Жалобная кнопка в правом нижнем углу... )
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

Программирую флешь.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение YS »

Конденсаторы по питанию большие есть?
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение Fasterpast »

Мож паразитное откуда приходит?
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение krolaka »

да было у меня мк не отключался работал через комовский програматор :))
Изображение
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

Нет конденсаторов, отрубаю шнур питания(питание=0) но какого ч-а значение одной из переменных не обнуляется???(пробовал менять имя переменной-не вариант)
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

krolaka, а как вы решили проблему????
Аватара пользователя
Финский
Открыл глаза
Сообщения: 59
Зарегистрирован: Сб авг 28, 2010 13:29:43
Откуда: Докучаевск, Донецк
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение Финский »

Инициализация памяти
Мало кто подозревает о том, что при включении в оперативке далеко не всегда все байты равны 0xFF. Они могут, но не обязаны. Равно как и регистры РОН не всегда равны нулю при запуске. Обычно да, все обнулено, но я несколько раз сталкивался со случаями когда после перезапуска и/или включения-выключения питания, микроконтроллер начинал творить не пойми что. Особнно часто возникает когда питание выключаешь, а потом, спустя некоторое время, пара минут, не больше, включаешь. А всему виной остаточные значения в регистрах.

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

AVR. Учебный курс. Стартовая инициализация
[color=#800000]Техноманьяк и IT-шаман. Танцы с бубном на дому.[/color]
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

:)))))))))))))))))))))))))))))))))))))))))))) не так всё просто. Обнулял всё.... Но сброс происходит только при перепрошивке или при ресете
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

4894 есть еще советы?
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

Такое подозрение, что прога запускается не сначала, а с цикла while. Что за фигня..
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение krolaka »

увеличил сопротивление резисторов от програматора :) вроде по 680 Ом поставил даже на ресет :) а щас вообще проблем нету пользуюсь ucGoZilla :)
Изображение
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение O-LED »

Но сброс происходит только при перепрошивке или при ресете
вот и ответ, при выключении/включении питания МК у вас не перезапускается. ищите причину - большие кондеры, паразитное питание, и т.д.
Ради эксперимента замкните ноги питания контроллера секунд на 5-10, потом включите свое устройство и посмотрите на состояние переменных
KIT
kondor
Нашел транзистор. Понюхал.
Сообщения: 150
Зарегистрирован: Чт апр 29, 2010 10:32:32

Re: МК Atmega не забывает значения??

Сообщение kondor »

O-LED писал(а):
Но сброс происходит только при перепрошивке или при ресете
вот и ответ, при выключении/включении питания МК у вас не перезапускается. ищите причину - большие кондеры, паразитное питание, и т.д.
Ради эксперимента замкните ноги питания контроллера секунд на 5-10, потом включите свое устройство и посмотрите на состояние переменных


Имхо достаточно просто тестером поглядеть питание при "выключенном" состоянии.

Alerr писал(а):Здравствуйте. Господа, выявилась одна странность. У меня мк атмега 16,(собрал часы-таймер). Для операций использовал переменные типа инт. Почему после снятия питания с контроллера, а затем подачи на него питания значения переменных не обнуляются?????? Но при подаче питания на ресет все обнуляется??


Покажите кусок кода, где вы объявляете переменные.
Alerr
Встал на лапы
Сообщения: 146
Зарегистрирован: Вт май 03, 2011 20:01:23

Re: МК Atmega не забывает значения??

Сообщение Alerr »

Вот код, где я обьявляю все переменные:
#include <mega16.h>
#include <delay.h>
int flag, i, mig;
int domin,dohour, min=0, hour=0, ch, mi, fun=0, data, lok;
int a[10]={136, 190, 196, 148, 178, 145, 129, 188, 128, 144}, b[4]={1, 2, 4, 8};
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>

// DS1307 Real Time Clock functions
#include <ds1307.h>

// Declare your global variables here

unsigned char h,m,s;


void main()
{

fun=0- то, что не зануляется при отключения атмели от программатора.
Конденсаторов и доп. источников питания нет.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: МК Atmega не забывает значения??

Сообщение YS »

Попробуйте дописать volatile. :idea:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: МК Atmega не забывает значения??

Сообщение uk8amk »

Помню в CVAVR был такой косяк, что если в одну строку инициализируется несколько разных переменных, то он их пропускал. Приходилось деклалировать каждую переменную по отдельности. Но я не в курсе, может сейчас уже починили этот косяк.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: МК Atmega не забывает значения??

Сообщение BOB51 »

прсле сброса в регистрах и/или озу произвольные или предыдущие значения , чтобы получить заранее заданные - стандартная процедура очистки/установки в модуле инициализации, а он обычно выполняется только после системного сброса ( по крайней мере так в большинстве программ "по умолчанию" )
если имеет место неполное отключение "на ходу" (аппаратное или программное) необходимо предусмотреть программно-аппаратное решение "выхода из ступора"- как минимум сброс по wdt или схеме контроля напряжения питания, а более тонко - корректную программу составить.
если причина в прерываниях -
внимательно отследить историю прерываний и стек возврата, особенно, если возможно взаимное наложение вызовов, даже если другие прерывания запрещены.
наиболее корректен вариант подстановки в качестве адреса возврата 0х0000 с последующей командой reti
к сожалению, работаю только с ассемблером - по С -не консультант...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»