Hallo Zusammen Ich möchte den Ram von meinem PIC18 beim Hochlauf testen, also mit einem Wert beschreiben und wieder auslesen. Ich möchte dies in C machen, weiß jedoch nicht wie ich über die schon def Variablen, die in diesem Bereich liegen, den gesamten Ram als eine Variable ansprechen kann. Bitte um Hilfe. Danke. Lg. Johann K.
Noch mal nachgefragt Wie kann ich mit C das Ram beschreiben und lesen ohne eine Variable zu definieren. #pragma udata dTestdd=0x200 //Ram ab unsigned char ucSerOutTelEnd; //Telegramm Ende unsigned char ucSerOutPufEmpty; //Serielleausgabepuffer ist leer unsigned char uaSerOutPuf[200]; //Ausgabepuffer Seriellekommunikation unsigned char ucSerOutAdr; //Adresse für Ausgabepuffer unsigned char ucPufDatInNew[6]; //aktuell eingelesene Eingänge unsigned char ucPufDatInOld[6]; //letzt eingelesene Eingänge unsigned char ucReadPufSpi; //Lesepuffer SPI unsigned char ucCounterTest; unsigned char ucTestArry[10]; Diese Variablen liegen im Ram und ich möchte ab der Adresse 0x200 den RAM mit schrieben und lesen auf korrekte Funktion prüfen ohne die Variablen zu verwenden. Danke.
Ganzen Speicher ansprechen ist eigentlich kein Problem.
for (volatile char *p = 0x200; p < 0x800; p++) {
*p = Testwert;
if (*p != Testwert) ....
}
Nur wenn du es in C schreibst, musst du im generierten Assemblercode
überprüfen, ob der Optimizer wirklich eine Funktion erzeugt, die den
getesteten Speicher nicht benutzt. Nach Murphys Gesetz vergisst du
dieses Problem wieder, schaltest Debug-Optimierung ein und dein Programm
stürzt bereits beim Start ab.
In Inline Assemler dürfte die Sache recht problemlos nur mit SFRs gehen.
Danke. Ich werde mich mit Assembler befassen, schaut beim PIC sehr kopliziert aus, bei der 8051 Familie ist das viel einfacher. Lg. johann K.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.