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

 
 
 
Reply to this topicStart new topic
> не прошивается eeprom?, пока программатор в разъеме, все нормально
Fynjisx
сообщение Jul 6 2009, 03:17
Сообщение #1


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



ПРивет Всем!
у меня в программе есть такие строчки:
Код
_no_init __eeprom unsigned char ee1, ee2;
unsigned char width1, width2;

init()
{
... //здесь инициируются переменные
   width1 = ee1;
   width2 = ee2;
}

write()
{
  unsigned char a, b;
...
  ee1 = a; //по идее запись в eeprom
  ee2 = b;
}


main()
{
  init();
  ...
  write();
  ...
}

после того как я запрограммировал AVR, программа по мере выполнения должна записать другие значения в eeprom. Далее я выключаю питание AVR,
затем снова включаю и смотрю на дисплее какие значения в ee и ee1. Тут всё нормально - значения те же которые записала программа
в эти ячейки перед отключением. Но когда я вытаскиваю разъём программатора из платы, и делаю то же самое, т.е подаю питание на AVR,
запускается программа, далее она должна сохранить значения в ячейках ee и ee1, затем я её отключаю, чтобы при новом включении проверить
как записало и вот тут то вижу что значения там не изменились!
Т.е пока программатор подключен, всё нормально, а когда его отключаешь, то возникает подобная штука.
проект написан на СИ, откомпилирован в IAR5.10А, выходной формат msd-i.
Подскажите в чем проблема.
Заранее благодарю...


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 6 2009, 06:21
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата
...Но когда я вытаскиваю разъём программатора из платы, и делаю то же самое, т.е подаю питание на AVR,
запускается программа, далее она должна сохранить значения в ячейках ee и ee1, затем я её отключаю, чтобы при новом включении проверить
как записало и вот тут то вижу что значения там не изменились!
...

Как Вы удостоверяетесь в том, что программа в этом случае вообще стартует и выполняет функцию main()?
Go to the top of the page
 
+Quote Post
RA3WUM
сообщение Jul 7 2009, 05:19
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578



Проверяйте цепи питания и сброса схемы, скорее всего там проблема.


--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх!
В. Кипелов, Беги за солнцем.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 7 2009, 05:32
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Fynjisx @ Jul 6 2009, 06:17) *
т.е подаю питание на AVR,
запускается программа, далее она должна сохранить значения в ячейках ee и ee1, затем я её отключаю, чтобы при новом включении проверить
А при этом втором включении она точно должна сохранить в eeprom другие значения, или те же самые, которые сохраняла и при первом? В приведенном вами коде в eeprom сохраняются значения неинициализированных локальных переменных, т.е. мусор со стека, который может быть и одинаковым от включения к включению.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 7 2009, 06:27
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Судя по недостаточности информации в приведённом примере, вообще ничего определённого сказать нельзя.
Похоже (только похоже), что всё дело как раз в инициализации переменных.
Кстати, один из способов выявить глюк, это уменьшить проект до минимальных размеров, при которых проявляется глюк, а не приводить фрагменты программы, которые могут не иметь ни малейшего отношения к глюку.

PS: Fynjisx, отвечать на вопросы лучше сюда, а не в личку.
Go to the top of the page
 
+Quote Post

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

 


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


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