Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Zugriff auf flash array Kategorie: Programmierung C (von PeterS - 15.08.2009 21:13)
Als Antwort auf Zugriff auf flash array von ER - 14.08.2009 13:00
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board, Pro-Bot128

Hallo Ellen,

im Handbuch werden f├╝r die neue Version 2.1 die Tabellen beschrieben:

Tabellen mit vordefinierten Arrays
Seit Version 2.0 der IDE k├Ânnen Arrays mit Werten vorbelegt werden:

byte glob[10] = {1,2,3,4,5,6,7,8,9,10};
flash byte fglob[2][2]={10,11,12,13};

void main(void)
{
    byte loc[5]= {2,3,4,5,6};
    byte xloc[2][2];

    xloc= fglob;
}

Da bei der C-Control Pro Unit mehr Flash als RAM Speicher zur Verf├╝gung steht, kann man mit dem
flash Befehlswort Daten definieren, die nur im Flashspeicher stehen. Diese Daten k├Ânnen dann
durch eine Zuweisung auf ein Array im RAM mit gleichen Dimensionen kopiert werden. Im Beispiel ist
dies: "xloc= fglob". Diese Art der Zuweisung gibt es nicht in normalem "C".

Wenn Du noch weitere Fragen hast, werde ich gerne weiterhelfen.

Gruss Peter


> Hallo zusammen,
>
> ich habe einen ├Ąhnlichen Punkt wie eben beschrieben.
> Ich m├Âchte eine Tabelle im flash Speicher hinterlegen und
> darauf zugreifen k├Ânnen. Beispiel siehe unten.
> Ich m├Âchte keinen RAM Speicher vergeuden. Au├čerdem sind die Daten nach Power down weg.
> Bei der C Control 1 geht das ├╝brigens mit der Anweisung LOOKTAB(...
>
>
> Gru├č
> Ellen
>
>
> #ifdef workstation
> // ROM Adressen der 12 DS1820 Sensoren:
> flash byte matchromadress [8][12] =
> {16, 156, 193,  78, 1, 8, 0, 240,
>  16,  50, 186,  78, 1, 8, 0, 162,
>  16, 188, 150,  96, 1, 8, 0, 231,
>  16,  48,  31,  96, 1, 8, 0, 72,
>  16,  33,  51,  96, 1, 8, 0, 253,
>  16,  94,  93,  96, 1, 8, 0, 242,
>  16, 209, 233,  95, 1, 8, 0, 190,
>  16,   8,  39,  78, 1, 8, 0, 219,
>  16, 111, 186, 202, 1, 8, 0, 17,
>  16,  50,  16,  78, 1, 8, 0, 44,
>  16,  71, 176, 202, 1, 8, 0, 187,
>  16, 209, 170, 202, 1, 8, 0, 121};
> #endif


    Antwort schreiben


Antworten: