Отговори на тема  [ 4 мнения ] 
array 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Мар 30, 2005 2:08 pm
Мнения: 30
Местоположение: Сливен
Мнение array
Използвам IAR Embedded workbench for AVR .Имам дефинирани N на брой масива:
__flash const char *ptici[]={
"кокошка",
"патка ",
"гълъб",
"врабче"
};
.
N
.
__flash const char *animal[]={
"лъв",
"слон ",
"котка"
};
__flash unsigned char color_ptici[12]={12,4,33,65…1};
.
N
.
__flash unsigned char color_animal[12]={44,2,27,66…9};

//функция за визуализация
Print_LCD(unsigned char * color,char *p[])
{
.
.
}
Main()
{
Print_LCD(color_ptici,ptici);
Print_LCD(color_animal,aimal);
}
След компилация ми дава грешка:
Error[Pe167]: argument of type "unsigned char __flash *" is incompatible with parameter of type "unsigned char *"
Ако масива го направя в RAM т.е. без __flash всичко е ок.
Въпроса ми е как да дефинирам еднотипни масиви от константи и да ги предам на функция ?


Пон Сеп 29, 2014 10:53 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Фев 13, 2013 3:35 pm
Мнения: 1803
Мнение Re: array
Той ти го е писал:
"unsigned char *"
Print_LCD(unsigned char __flash * color,char *p[])
Така му казваш, че са от флаш паметта и си ги адресира от там. Иначе ще ги адресира от рама.


Вто Сеп 30, 2014 1:04 am
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Мар 30, 2005 2:08 pm
Мнения: 30
Местоположение: Сливен
Мнение Re: array
Благодарско :)

но се появи и следния проблем при дефиниране на масив от вида:
__flash const char *ptici[]={
"кокошка",
"патка ",
"гълъб",
"врабче"
};
се заделят и байтове от рама колкото са буквите в думите + 1 и толкова в флаша
а когато е :
__flash unsigned char color_animal[12]={44,2,27,66…9};
го разполага само в флаша

някаква идея защо е така?
и решение да се разположи само в флаша


Вто Сеп 30, 2014 10:13 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение Re: array
В опциите на ИАР имаше нещо като "place strings in flash".

Имаше някакъв начин и локално да се укаже с прагма директива.

А може да пробваш с заигравка с __flash

__flash const char __flash *ptici[]={
"кокошка",
"патка ",
"гълъб",
"врабче"
};


Вто Сеп 30, 2014 10:49 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни