Обсуждаем контроллеры компании Atmel.
Ответить

EEPROM в CV_AVR

Чт мар 21, 2024 13:29:26

Есть кто реально работает программе CodeVisionAVR?
У меня что-то не получается с еепроминой, хотя компилируется без ошибок, флешь в контроллер шьётся без проблем, а еепром при прошивки бросает ошибку. МК исправен, так как проверялось на нескольких новых и другие проги с еепром шьются без проблем. Вот кусок примерной программы. Подскажите пожалуйста, что не так делаю. Пробовал по хелпу этой программы, при компиляции ошибки бросает как и по даташиту на МК. Пробовал на разных версиях везде одинаково.
#include <tiny2313a.h>
eeprom char b_eep;
eeprom char c_eep; /
char b=1;
char c=1;
void main(void)
{
b_eep=b;
c_eep=c;
PORTD=0x3C;
DDRD=0x03;
b=b_eep;
c=c_eep;

PORTD.0=b;
PORTD.0=c;
delay_ms(10);
}

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:06:36

Alex_ka писал(а):компилируется без ошибок

Alex_ka писал(а):при компиляции ошибки бросает


Что вообще должна делать программа?

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:09:57

Нужно писать что ожидаешь, что получаешь и что и как наблюдаешь.
И код нужно правильно вставлять, хотя бы ради приличия.
Опередили.)

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:19:34

Alex_ka писал(а):Пробовал по хелпу этой программы
сомневаюсь :)
В объявлении переменных, хранимых в еепром, нужно указывать адрес ячейки, насколько я помню
Код:
eeprom unsigned char e_var @0x00;

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:24:48

В объявлении переменных, хранимых в еепром, нужно указывать адрес ячейки, насколько я помню
Код:
eeprom unsigned char e_var @0x00;

Извиняюсь, погорячился.(
Последний раз редактировалось OKF Чт мар 21, 2024 14:29:16, всего редактировалось 1 раз.

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:34:07

Что вообще должна делать программа?
выше написанеое без ошибок но еепром не шьёт . Другое с ошибками.

Добавлено after 5 minutes 6 seconds:
Нужно писать что ожидаешь, что получаешь и что и как наблюдаешь.
И код нужно правильно вставлять, хотя бы ради приличия.
Опередили.)
ну так там написано записать с и б в память по 1, потом считать и присвоить состояние портов

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:43:16

Оставьте одну переменную и всю её выводите в порт. Примерно так:
Код:
#include <tiny2313a.h>
eeprom char a_eep;
char a;
void main(void)
{
DDRB=255;

a=a_eep;
a++;
a_eep=a;
PORTB=a;
while(1){};

}


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

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:45:50

Вопросы, начинающиеся как "есть кто..." можно оставлять без внимания. Потому что потом можно просто зависнуть на фразе "Пробовал по хелпу этой программы, при компиляции ошибки бросает как и по даташиту на МК." и уйти в запой, если повезёт. А если не повезёт, то на
PORTD.0=b;
PORTD.0=c;
точка сборки изменится

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:56:12

Оставьте одну переменную и всю её выводите в порт. Примерно так:
Тогда при каждом новом включении значение будет увеличиваться, что явно будет видно по светодиодам.
Спасибо, попробую. А если две переменных будет а и б, не затрет ли вторая первую?

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:57:06

Потом. Вторая переменная будет потом, когда начнёт читаться и писаться одна.

Re: EEPROM в CV_AVR

Чт мар 21, 2024 14:59:12

Ок. Спасибо.
Ответить