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

 
 
 
Reply to this topicStart new topic
dio
сообщение May 22 2007, 12:47
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Необходимо сохранить кое какие данные внесенные через 4X4 клаву на m8.
Какие будут предложения?

Благодарю зарание!
Go to the top of the page
 
+Quote Post
IEC
сообщение May 22 2007, 12:52
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Считываешь данные и сохраняешь в память!

ЗЫ: Каков вопрос, таков ответsmile.gif)
Go to the top of the page
 
+Quote Post
Палыч
сообщение May 22 2007, 14:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Что за данные? Настройки устройства? Протоколирование нажатий кнопок клавиатуры?..

Ответ: Ну, например, использовать 512 байт EEPROM.

Вопрос, конечно, сформулирован очень расплывчато...
Go to the top of the page
 
+Quote Post
dio
сообщение May 22 2007, 15:00
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(IEC @ May 22 2007, 14:52) *
Считываешь данные и сохраняешь в память!

ЗЫ: Каков вопрос, таков ответsmile.gif)


smile.gif чтож прийдется согласится


В runtime пользователем вводится через клавиатуру 4ехзначный код, который сохраняется в переменной

char *mat;
mat=GetFromKeyb();

и допустим что mat имеет значение "1234"
как его сохранить в камне в любом виде памяти

камень: mega8
среда: Iar avr 4.10a
Go to the top of the page
 
+Quote Post
GDI
сообщение May 22 2007, 15:33
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



имхо
__no_init eeprom char* mat;
и она всегда будет сохраняться/читаться в/из ЕЕПРОМ


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
dio
сообщение May 22 2007, 18:41
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



спасибо попробуем!
а можно как нибудь во flash, думаю будет постабильнее!
Go to the top of the page
 
+Quote Post
GDI
сообщение May 23 2007, 07:05
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Ресурс записи флешь 10000 циклов, еепром -100000, это к сведению.
Чтобы хранить КОНСТАНТЫ во флешь в ИАРе есть префикс flash, чтобы предотвратить копирование в ОЗУ надо использовать еще и префикс const, для записи во флешь надо использовать команды самопрограммирования. У Атмела есть апнота о том как это сделать, но с учетом ресурса стоит ли овчинка выделки? Уточню, для хранения и перезаписи переменной в еепром в ИАРе достаточно добавить eeprom к имени - все подпрограммы для доступа ИАР сделает сам, а для записи во flash надо делать дополнительные телодвижения самому.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
IEC
сообщение May 24 2007, 07:41
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Тем более в EEPROM запись ведется побайтно, а в flash придется перемисывать страницу. Объем страницы зависит от типа AVR.
Наверное лучше сохранять в EEPROM.
Цитата
char *mat;
mat=GetFromKeyb();

и допустим что mat имеет значение "1234"
как его сохранить в камне в любом виде памяти

Это как? переменная mat является указателем на переменную типа char (или на начало массива переменных типа char).
Я бы попробовал написать:
__no_init eeprom char mat_1[4];
а указатель уже делать на массив данных, расположенный в EEPROM/
Go to the top of the page
 
+Quote Post
dio
сообщение May 24 2007, 20:17
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(IEC @ May 24 2007, 09:41) *
Это как? переменная mat является указателем на переменную типа char (или на начало массива переменных типа char).


Не надо весь массив сразу, один byte более чем достаточно!

__no_init _eeprom не помогло, почему-то сбрасывается после RESETa

решил проблему иначе:

Код
#include <ina90.h>
#define ee_address 0x01

char w,r;
_EEPUT(ee_address,w);
_EEGET(r,ee_address);



Огромное спасибо всем за участие smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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