Пятница, 26.04.2024, 17:42
Микроконтроллерная техника AVR
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Микроконтроллеры » Вопросы по МК » Не получается записать переменную в EEPROM (Если кто знает подскажите???)
Не получается записать переменную в EEPROM
Ara07Дата: Воскресенье, 27.02.2011, 20:49 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
Не могу записать значение переменной в память EEPROM, за основу использовал статью, "Работаем с энергонезависимой памятью микроконтроллера EEPROM".

#include <mega8.h>
#include <delay.h>
#asm
.equ __lcd_port=0x12
#endasm
.......................
...............
eeprom float a=0;
....................
......................
void main(void)
{

char lcd_buffer2[15];
char lcd_buffer3[15];
float m1=0;
float menu=0;
......................
...................

if (m1==0)

while(1)
{

lcd_gotoxy(0,0);
lcd_putsf("Vvedite chislo");
lcd_gotoxy(0,1);
lcd_putsf("Chislo=:");
sprintf(lcd_buffer2,"%4.0f ",m1);
lcd_gotoxy(10,1);
lcd_puts(lcd_buffer2);

if (PINB.0==0)

{
menu=menu+1;
delay_ms(200);

if (menu==1);

{
m1=m1+5;

m1=a; ???????????? как правильно
m1==a; ?????????? и иак и так не работает?
а==m1; ????????
.......................
........................

Как в данном случае записать переменную m1 в память EEPROM, Все перепробывал не получается, при нажатии на кнопку устройство не реагирут. Мне необходимо что бы значение переменной m1 сохранилось в EEPROM. И при следующем запуске считала значение не m1=0, а m1=5 или m1=10 - зависит от количества нажатий на кнопку. Может как то по другому можно написать данный код???? Подскажите пожалуста!!!

Сообщение отредактировал Ara07 - Воскресенье, 27.02.2011, 22:13
 
neoxДата: Пятница, 04.03.2011, 21:54 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
#include <mega8.h>
#include <delay.h>
#asm
.equ __lcd_port=0x12
#endasm
.......................
...............
eeprom float a=0;
....................
......................
void main(void)
{

char lcd_buffer2[15];
float m1;
m1=a;

while(1)
{

sprintf(lcd_buffer2,"%4.0f ",m1);
lcd_gotoxy(0,0);
lcd_puts(lcd_buffer2);

if (PINB.0==0)
{
a=a+1;
delay_ms(200);
}


}//while
}//main

должно работать.с функцией sprintf проблем не было?

 
Ara07Дата: Пятница, 04.03.2011, 23:09 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
Спасибо за ответ! Но прога не понимает строчку m1=а; она на ней затыкается, и пишет invalid expression??? как решить данную проблему????
 
neoxДата: Суббота, 05.03.2011, 00:04 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x12
#endasm

eeprom int a=1;

void main(void)
{
char lcd_buffer2[15];
int m1;
m1=a;
PORTB.0=1;
lcd_init(16);

while(1)
{

sprintf(lcd_buffer2,"a=%u, m1=%u",a,m1);
lcd_gotoxy(0,0);
lcd_puts(lcd_buffer2);
delay_ms(100);
lcd_clear();

if (PINB.0==0)
{
a=a+1;
delay_ms(20);
}

}//while
}//main

в протеусе работает идеально

 
HiSERДата: Понедельник, 07.03.2011, 05:08 | Сообщение # 5
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Quote (Ara07)
Не могу записать значение переменной в память EEPROM, за основу использовал статью, "Работаем с энергонезависимой памятью микроконтроллера EEPROM".

#include <mega8.h>
#include <delay.h>
#asm
.equ __lcd_port=0x12
#endasm
.......................
...............
eeprom float a=0;
....................
......................
void main(void)
{

char lcd_buffer2[15];
char lcd_buffer3[15];
float m1=0;
float menu=0;
......................
...................

if (m1==0)

while(1)
{

lcd_gotoxy(0,0);
lcd_putsf("Vvedite chislo");
lcd_gotoxy(0,1);
lcd_putsf("Chislo=:");
sprintf(lcd_buffer2,"%4.0f ",m1);
lcd_gotoxy(10,1);
lcd_puts(lcd_buffer2);

if (PINB.0==0)

{
menu=menu+1;
delay_ms(200);

if (menu==1);

{
m1=m1+5;

m1=a; ???????????? как правильно
m1==a; ?????????? и иак и так не работает?
а==m1; ????????
.......................
........................

Как в данном случае записать переменную m1 в память EEPROM, Все перепробывал не получается, при нажатии на кнопку устройство не реагирут. Мне необходимо что бы значение переменной m1 сохранилось в EEPROM. И при следующем запуске считала значение не m1=0, а m1=5 или m1=10 - зависит от количества нажатий на кнопку. Может как то по другому можно написать данный код???? Подскажите пожалуста!!!

вот это что в коде? -> if (m1==0)

Добавлено (07.03.2011, 05:08)
---------------------------------------------
И код надо писать в тегах [code][/code]

 
Форум » Микроконтроллеры » Вопросы по МК » Не получается записать переменную в EEPROM (Если кто знает подскажите???)
  • Страница 1 из 1
  • 1
Поиск:

Хостинг от uCoz