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

 
 
> Mega48-20 не пишет в EEPROM, Что я забыл?
smk
сообщение Dec 16 2014, 07:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Давно уже с АВРками дела не имел может что-то не так. Есть устройство с Mega48-20. Тактовая 4 МГц. Фуз еепрома стоит правильно, запись разрешена. Функции чтения-записи из даташита. Не пишет в еепром, в т.ч. и на симуляторе тоже. Что это может быть, что я забыл? Прерывания запрещаю. Пишется из главного цикла. Читать получается (0хFF).

Код
void EEPROM_write(unsigned int Address, unsigned char Data)
{
  while(EECR & (1<<EEPE)); /* Wait for completion of previous write */
  EEAR = Address; /* Set up address and Data Registers */
  EEDR = Data;
  EECR |= (1<<EEMPE); /* Write logical one to EEMPE */
  EECR |= (1<<EEPE); /* Start eeprom write by setting EEPE */
}

unsigned char EEPROM_read(unsigned int Address)
{
  while(EECR & (1<<EEPE)); /* Wait for completion of previous write */
  EEAR = Address; /* Set up address register */
  EECR |= (1<<EERE); /* Start eeprom read by writing EERE */
  return EEDR; /* Return data from Data Register */
}

    while(1)
    {
    if(mode)
    {
      PORTC = 0b00010000;
      delay(30000);
      PORTC = 0b00000000;
      delay(30000);
    }

    if(mem)
    {
      asm("cli");      
      EEPROM_write(0x0A, mode);
      EEPROM_write(0x0B, output);
      mem = 0;
      asm("sei");
    }
    //проверить питание
    }//while


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smk
сообщение Dec 16 2014, 20:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Ну вот... О1 и уже не работает. прикладываю проект для студии целиком. На самом деле действительно интересно что происходит. С кейлом таких чудес небыло ни разу. Не суть, просто хочу понять что происходит...
Прикрепленный файл  tr.rar ( 21.31 килобайт ) Кол-во скачиваний: 49


Цитата(IgorKossak @ Dec 16 2014, 21:16) *
Присваивание это просто запись, а то, что Вы описали, называется чтение-модификация-запись. Т. е. надо так, как Вам советовали:
Код
  EECR = (1<<EEMPE); /* Write logical one to EEMPE */
  EECR = (1<<EEMPE)|(1<<EEPE); /* Start eeprom write by setting EEPE */

Ну пусть так. Однако серийное изделие (лет более 5-ти) на Тини24 работает и повторяется .... правда перепер на STM8S0003F, но это детали... и на тини отлично все работает. Версия компилятора не изменилась. В чем смысл тогда?

оптимизация Os сильно убыстряет циклы мигания
Код
      PORTC = 0b00010000;
      delay(30000);
      PORTC = 0b00000000;
      delay(30000);


Это почему?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- smk   Mega48-20 не пишет в EEPROM   Dec 16 2014, 07:47
- - Сергей Борщ   Код EECR |= (1<<EEMPE); /* Write l...   Dec 16 2014, 08:00
|- - smk   Цитата(Сергей Борщ @ Dec 16 2014, 10:00) ...   Dec 16 2014, 08:56
|- - Xenia   Цитата(smk @ Dec 16 2014, 11:56) Компилят...   Dec 16 2014, 09:01
||- - smk   Цитата(Xenia @ Dec 16 2014, 11:01) У вас ...   Dec 16 2014, 09:04
|- - Сергей Борщ   Цитата(smk @ Dec 16 2014, 10:56) Компилят...   Dec 16 2014, 09:08
|- - smk   Цитата(Сергей Борщ @ Dec 16 2014, 11:08) ...   Dec 16 2014, 09:11
|- - Сергей Борщ   Цитата(smk @ Dec 16 2014, 11:11) Только я...   Dec 16 2014, 09:54
|- - IgorKossak   Цитата(smk @ Dec 16 2014, 11:11) Спасибо....   Dec 16 2014, 12:17
|- - smk   Цитата(IgorKossak @ Dec 16 2014, 14:17) Э...   Dec 16 2014, 12:40
|- - IgorKossak   Цитата(smk @ Dec 16 2014, 14:40) Ну а как...   Dec 16 2014, 13:43
|- - smk   Цитата(IgorKossak @ Dec 16 2014, 15:43) О...   Dec 16 2014, 14:31
||- - IgorKossak   Цитата(smk @ Dec 16 2014, 16:31) Да, комп...   Dec 16 2014, 19:16
|- - Bear_ku   Цитата(IgorKossak @ Dec 16 2014, 18:43) Н...   Dec 17 2014, 03:54
|- - demiurg1978   Я делал один проект. Сначала взял ATMEGA8535. Прое...   Dec 17 2014, 07:17
|- - Сергей Борщ   Цитата(demiurg1978 @ Dec 17 2014, 09:17) ...   Dec 17 2014, 08:00
|- - demiurg1978   Цитата(Сергей Борщ @ Dec 17 2014, 14:00) ...   Dec 17 2014, 08:18
|- - Xenia   Цитата(Сергей Борщ @ Dec 17 2014, 11:00) ...   Dec 17 2014, 08:22
- - Bear_ku   Нашел старую программу для ATmega128, все было сде...   Dec 16 2014, 12:45
- - Сергей Борщ   Откровенно говоря - не стоит полагаться на компиля...   Dec 16 2014, 14:55
- - smk   Код../trsm_m48.c:21: warning: ...   Dec 16 2014, 19:14
|- - Сергей Борщ   Цитата(smk @ Dec 16 2014, 21:14) Вот тако...   Dec 16 2014, 20:09
- - smk   так предлагаете unsigned char *0x0A или как? Читае...   Dec 16 2014, 20:19
- - smk   в смысле цикл тот Кодvoid delay (unsigned lon...   Dec 16 2014, 21:47
|- - Сергей Борщ   Цитата(smk @ Dec 16 2014, 23:47) в чем см...   Dec 16 2014, 23:03
- - Xenia   Хочу напомнить, что у IAR EWAVR в хидере intrinsic...   Dec 17 2014, 08:01
- - Сергей Борщ   Цитата(demiurg1978 @ Dec 17 2014, 10:18) ...   Dec 17 2014, 08:39
- - demiurg1978   Цитата(Сергей Борщ @ Dec 17 2014, 14:39) ...   Dec 17 2014, 09:34


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

 


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


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