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: