Forum: PC-Programmierung ARRAY mit Variable


von gast (Gast)


Lesenswert?

Hallo zusammen,
ich habe ein Probleme mit dem Array. ich habe variable x1=0, X2=1,X3=1 
usw.
ich habe ein Array so definieren char ARR[8]="0x01,0x02,0x03,0x04,0x05"; 
und ich will das ARR[0]=X1 usw. das heisst ARR[0] enthalt den wert 0 und 
ARR[1]=1; wie kann ich es in C realisiert.
Danke für Hilfe

von Random .. (thorstendb) Benutzerseite


Lesenswert?

gast wrote:
> Hallo zusammen,
> ich habe ein Probleme mit dem Array. ich habe variable x1=0, X2=1,X3=1
> usw.
> ich habe ein Array so definieren char ARR[8]="0x01,0x02,0x03,0x04,0x05";
> und ich will das ARR[0]=X1 usw. das heisst ARR[0] enthalt den wert 0 und
> ARR[1]=1; wie kann ich es in C realisiert.
> Danke für Hilfe

Der Compiler sollte dir das um die Ohren hauen. Der String passt gar 
nicht in die 8 Zeichen (7 + '\0') rein :-)

Arrays werden anders Initialisiert, was du gemacht hast, ist, einen 
String zu initialisieren.

arr[8] = {1,2,3,4,5};
oder:
arr[2][8] = { {1,2,3,4,5}, {1,2,3,4,5} };

Zugriff auf die Indizes:

arr[i] (oder arr[0] ... arr[7]);



VG,
/r.


PS: dein arr[1] müsste eigentlich 120 (0x78) ergeben :-)

von gast (Gast)


Lesenswert?

Hallo random,
zu beispiel ich habe ein Port definiert PortD als eingang  und kodiert 
mit adresse zB. 0x01,0x02,0x030...  .in mein main-Funktion will ich  den 
PortD anrufen nur mit dem Adressen 0x1,0x2,0x3,... definieren . wie kann 
ich das realisieren?

von Uhu U. (uhu)


Lesenswert?

gast wrote:
> Hallo random,
> zu beispiel ich habe ein Port definiert PortD als eingang  und kodiert
> mit adresse zB. 0x01,0x02,0x030...  .in mein main-Funktion will ich  den
> PortD anrufen nur mit dem Adressen 0x1,0x2,0x3,... definieren . wie kann
> ich das realisieren?

Das versteh ich leider nicht: Ein Port hat in der Regel nur eine Adresse 
und aufrufen kann man ihn nicht, weil er sich aus Sicht des Programmes 
meistens wie eine Variable verhält.

von gast (Gast)


Lesenswert?

Hallo,
wie kann ich es in Flash speichern. ich habe sowas probiert
ARR[3]={0x01,0x02,0x03}
schreibenflash(void)
{
packet.low &=0x0F;
EECON1=0x84   // EEPGD=1; WREN=1

for(i=0; i< 64; i++)
{
 *((packet.adress)+i) = ARRmmm[i];
if((i & 0x0F)=0x0F)
{
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR=1;
}
}
}
und es founktionniert.
und ich habe PORTDbits.RDO mit 0x01 kodieren und ich will den 
PORTDbits.RDO lesen. wie mache ich?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.