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

 
 
> Считать из flash-памяти PIC. Срочно!, IAR язык Си
Andrеys
сообщение Dec 21 2007, 19:27
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 13-08-07
Из: г. Челябинск
Пользователь №: 29 741



т.к. памяти стало не хватать(держал много массивов с байтами) придется хранить их где-то в памяти и обращаться поадресно, на 1 адрес 6 байт, возможно ли такое на PIC?
модель PIC16F877. Как это осуществляется?
нашел в файле inpic.h вот это:


#ifdef __FLASH__
__intrinsic int __flash_read_int( unsigned short address );
__intrinsic void __flash_write_int( unsigned short address, int value );
__intrinsic char __flash_read_low_char( unsigned short address );
__intrinsic char __flash_read_high_char( unsigned short address );
#endif

очень похоже на то что мне надо(или я ошибаюсь?)
если да, то как это использовать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrеys
сообщение Jan 2 2008, 09:16
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 13-08-07
Из: г. Челябинск
Пользователь №: 29 741



я так понял ругаться начинает только в том куске, где идет работа с флеш-памятью, считывание,
конструкции типа этой в ИАРе не канают:
Цитата
char __flash massO[]={0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e};


в файле inpic.h иара нашел следующие строки
__intrinsic int __flash_read_int( unsigned short address );
__intrinsic void __flash_write_int( unsigned short address, int value );
__intrinsic char __flash_read_low_char( unsigned short address );
__intrinsic char __flash_read_high_char( unsigned short address )
их использую, а выдает ошибку... unsure.gif
как они правильно применяются? думаю что адреса использую не те, начальный подсмотрел в pdf
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 2 2008, 21:59
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Andrеys @ Jan 2 2008, 11:16) *
я так понял ругаться начинает только в том куске, где идет работа с флеш-памятью, считывание

Да если дело только в этом, то просто расширения Си в ИАРе по другому определяются, да и делов то!
Примените стандартную сишную конструкцию, она везде железно работать должна smile.gif
Код
const char massO[]={0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e};

И дальше обращайтесь к элементам массива стандартным образом:
Код
temp_char = massO[5];
...
Write_Data_to_LCD(1, massO[1]);
...
if (massO[2] == 0x41) ...
...
for (i=0, i<sizeof(massO), i++) temp_buf[i] = massO[i];
...


И еще отступление:
Кто вам посоветовал взять ИАРовский компилятор, тоже "злой препод" biggrin.gif или сами выбрали?
Я тут глянул на сайт ИАРа и с удивлением обнаружил, что они уже 5 лет не развивают компилятор для PIC16. Видимо поняли, что тут им ловить уже нечего, это семейство слабо подходит для классической реализации Си, где они были всегда сильны, и перебросили силы на новые семейства Микрочипа: PIC18, PIC24, dsPIC.
Версия 2.21А (она же последняя) выпущена в октябре 2002. В ноябре я её пробовал, и даже небольшую статейку написал. Если есть интерес, можете глянуть:
IAR-C v2.21A for PIC16: Глава 1. Первые впечатления и проблемы несовместимости с HT-PICC
IAR-C v2.21A for PIC16: Глава 2. Изучаем компилятор
Так что если есть планы и дальше применять PIC16, то лучше возмите HiTech PICC - он все время развивается santa2.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Andrеys   Считать из flash-памяти PIC. Срочно!   Dec 21 2007, 19:27
- - ncux   Цитатапридется хранить их где-то в памяти А массив...   Dec 22 2007, 22:09
- - Andrеys   да, я был некорректен. держать в памяти я имел вви...   Dec 23 2007, 09:18
- - Baser   Цитата(Andrеys @ Dec 21 2007, 21:27) очен...   Dec 23 2007, 12:15
- - Andrеys   это случилось когда невольно пришлось писать прогр...   Dec 23 2007, 13:58
|- - Baser   Цитата(Andrеys @ Dec 23 2007, 15:58) это ...   Dec 23 2007, 14:31
- - Andrеys   ага. а у меня дело-то в том что это "злой пре...   Dec 23 2007, 16:33
|- - Baser   Цитата(Andrеys @ Dec 23 2007, 18:33) знач...   Dec 23 2007, 17:41
- - Andrеys   Окей, я сделал так: char flash_read(char address) ...   Dec 26 2007, 18:54
- - Baser   Ну для начала просьба не выкладывать такие куски п...   Dec 26 2007, 21:40
- - Andrеys   ЦитатаОдна явная ошибка налицо: ... Учтено! ...   Dec 30 2007, 10:59
|- - Baser   Цитата(Andrеys @ Dec 30 2007, 12:59) каки...   Dec 30 2007, 16:23
- - Andrеys   Baser! Спасибо за хорошее отношение и терпелив...   Jan 10 2008, 17:55
- - KAI   Цитата(Baser @ Jan 3 2008, 00:59) Версия ...   Feb 15 2008, 10:04


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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 03:31
Рейтинг@Mail.ru


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