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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Внутренее еепром в авр, компилятор CVAVR
Lexi
сообщение Jan 9 2008, 10:17
Сообщение #16


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

Группа: Свой
Сообщений: 131
Регистрация: 27-06-07
Из: Беларусь, Гомель
Пользователь №: 28 752



Цитата(AndyBig @ Jan 9 2008, 12:47) *
Попробуйте указать адрес массивов как и в IAR:
eeprom char IP[16] @0x00;
eeprom char Port[5] @0x10;

Не прошло, только для SRAM
Цитата(AndyBig @ Jan 9 2008, 12:47) *
По идее cvavr допускает указание адресов переменных таким образом... Правда в руководстве к нему сказано только про SRAM-переменные, но может и на епром пройдет...

придеться делать как GDI говорил.


Еще один аопрос, где можно почитать про протокол, как шить eeprom. Хочу написать ПО для отдельной прошивы EEPROM в человеческом и товарном виде.
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Jan 9 2008, 10:28
Сообщение #17


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Цитата
Не прошло, только для SRAM

А в IAR проходит, только что попробовал...
Цитата
где можно почитать про протокол, как шить eeprom

Шить откуда? Из своей прошивки? Снаружи?
Если снаружи, то читайте даташит на мегу, раздел Memory Programming.
Go to the top of the page
 
+Quote Post
Lexi
сообщение Jan 9 2008, 10:33
Сообщение #18


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

Группа: Свой
Сообщений: 131
Регистрация: 27-06-07
Из: Беларусь, Гомель
Пользователь №: 28 752



Спасибо за ответы, буду насиловать клаву (клавиатуру) дальше smile.gif
Всем beer.gif
Go to the top of the page
 
+Quote Post
011119xx
сообщение Jan 10 2008, 06:04
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



а как в WINAVR работать с EEPROM?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Jan 10 2008, 06:11
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Если нужны фиксированные адреса - я бы работал не через квалификаторы eeprom, а вручную - через регистры проца. В этом случае вы сами совершенно точно знаете, что где лежит.
В WINAVR, насколько я знаю, есть в библиотеке отдельные функции чтения\записи.
Go to the top of the page
 
+Quote Post
011119xx
сообщение Jan 10 2008, 06:20
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



Цитата(Непомнящий Евгений @ Jan 10 2008, 11:11) *
В WINAVR, насколько я знаю, есть в библиотеке отдельные функции чтения\записи.

функции есть только что-то не удается их использовать
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 10 2008, 07:25
Сообщение #22


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Использую функции для работы с EEPROM в ATmega128, 1281,2561 (запись текущих установок) из библиотеки Winavr. Возможно Вы не подключили необходимые хедеры. Работает корректно, для страховки использую мажоритарную схему (2 из 3), так как блоки записи короткие (16 байт).


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
011119xx
сообщение Jan 10 2008, 07:47
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



разобрался, но объявления типа eeprom u16 data[8]; не проходят
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 10 2008, 07:57
Сообщение #24


Гуру
******

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



Цитата(011119xx @ Jan 10 2008, 09:47) *
разобрался, но объявления типа eeprom u16 data[8]; не проходят
Ну, если ничего не помогает - попробуйте почитать документацию (Подсказка: c:/WinAVR/doc/avr-libc).


--------------------
На любой вопрос даю любой ответ
"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
011119xx
сообщение Jan 10 2008, 08:36
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



К примеру так не проходит:

#include <avr/eeprom.h>

eeprom unsigned int i[8];

int main(void)
{

}
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 10 2008, 08:47
Сообщение #26


Гуру
******

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



Цитата
попробуйте почитать документацию

Цитата(011119xx @ Jan 10 2008, 10:36) *
К примеру так не проходит:
Гы... гы... ы.... cranky.gif Где вы в документации на avr-libc такое нашли??


--------------------
На любой вопрос даю любой ответ
"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
011119xx
сообщение Jan 10 2008, 09:05
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



такого там нет. это была проверка на вшивость
Go to the top of the page
 
+Quote Post
D H
сообщение Jan 11 2008, 11:01
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Примите и мои пять копеек:
В даташите есть примеры для записи/чтения епром. берем целиком кусок из даташита и готова функция чтения/записи. Потом используй ее, как использовал для пиков:
MyVar=EEPROM_read(адрес);
EEPROM_write(адрес,MyVar);
В даташите на мегу16/32 это стр.22, для мега8 это стр21, дальше сам найдешь. smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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