Re: SRAM mit C programmieren Kategorie: Programmierung C (von bierbach - 8.05.2013 15:55) | ||
Als Antwort auf Re: SRAM mit C programmieren von PeterS - 8.05.2013 14:54 | ||
| ||
> > > > > > > > > > > > > > > > > > Hallo, guten Tag. > > > > > > > > > > Wer kann mir diesen "C-Code" mal umsetzen in dem "C-Code" von der C-Control Pro mit M128? > > > > > > > > > > Es zeigt, wie man das extern SRam vom Mege128 lesen und beschreiben kann: > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------------------------------- > > > > > > > > > > Initialisierung: > > > > > > > > > > > > > > > > > > > > MCUCR |= (1 << SRE); external RAM enable > > > > > > > > > > XMCRA |= (1 << SRW00) | (1 << SRW01) | (1 << SRW11); Waitstates enable > > > > > > > > > > XMCRB |= (0 << XMM0) | (0 << XMM1) | (0 < XMM2); Alle Addressleitungen > > > > > > > > > > gueltig > > > > > > > > > > > > > > > > > > > > Zugriff: > > > > > > > > > > unsigned char *p,v; > > > > > > > > > > p = 0x2000; Gewuenschte RAM Addresse 0x12000 ist nur Beispiel > > > > > > > > > > *p = 0x55; Schreiben ins RAM > > > > > > > > > > v = *p; Lesen aus dem RAM > > > > > > > > > > ---------------------------------------------------------------------------------------------- > > > > > > > > > > > > > > > > > > > > Danke. > > > > > > > > > > > > > > > > > > > > Gruss > > > > > > > > > > peter > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Es kommen viele Fehlermeldungen , ich dachte in "C" wäre es Kompatibel : > > > > > > > > > --------------------------------------------------- > > > > > > > > > void main(void) > > > > > > > > > { > > > > > > > > > MCUCR |= (1 << SRE) ; > > > > > > > > > XMCRA |= (1 << SRW00) | (1 << SRW01) | (1 << SRW11) ; > > > > > > > > > XMCRB |= (0 << XMM0) | (0 << XMM1) | (0 < XMM2) ; > > > > > > > > > > > > > > > > > > unsigned char *p,v ; > > > > > > > > > p=0x2000 ; > > > > > > > > > *p=0x55 ; > > > > > > > > > v=*p; > > > > > > > > > } > > > > > > > > > ----------------------------------------------------- > > > > > > > > > > > > > > > > > > �bersetze Projekt sram > > > > > > > > > C-Control Pro Compiler (C) 2011 Conrad Electronic > > > > > > > > > Durchlaufe Pass 1 > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(4,11): Syntax Fehler - unerwartetes Symbol: '|=' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(4,23): Syntax Fehler - erwartete ';' , gefunden ')' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(5,11): Syntax Fehler - unerwartetes Symbol: '|=' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(5,25): Syntax Fehler - erwartete ';' , gefunden ')' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(6,11): Syntax Fehler - unerwartetes Symbol: '|=' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(6,24): Syntax Fehler - erwartete ';' , gefunden ')' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(8,19): Syntax Fehler - erwartete 'Symbolnamen' , gefunden '*' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(10,5): Syntax Fehler - erwartete '}' , gefunden '*' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(10,7): Syntax Fehler - unerwartetes Symbol: '=' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(11,6): Syntax Fehler - unerwartetes Symbol: '=' > > > > > > > > > D:C-Control-Propebi-ccsramsram.cc(11,9): Syntax Fehler - unerwartetes Symbol: ';' > > > > > > > > > 11 Fehler - Kompilation abgebrochen. > > > > > > > > > Schreibe Symboldaten - 8903 bytes.. > > > > > > > > > > > > > > > > > > Wie kann ich den Zeiger ersetzen und wie dise Symbole : '|=' ? > > > > > > > > > > > > > > > > > > Danke. > > > > > > > > > > > > > > > > > > Gruss > > > > > > > > > peter > > > > > > > > > > > > > > > > Wo finde ich die Liste für die Pinbezeichnung, damit ich die in CC benutzen kann: > > > > > > > > zb : MCUCR |= (1 << SRE) > > > > > > > > > > > > > > > > Danke. > > > > > > > > > > > > > > > > Gruss > > > > > > > > peter > > > > > > > > > > > > > > So ich habe jetzt mal weiter geforscht und dieses in der WinAVR-C gefunden : > > > > > > > #define MCUCR _SFR_IO8(0x35) > > > > > > > #define XMCRB _SFR_MEM8(0x6C) > > > > > > > #define XMCRA _SFR_MEM8(0x6D) > > > > > > > #define SRW00 2 > > > > > > > #define SRW01 3 > > > > > > > #define SRW11 1 > > > > > > > #define XMM2 2 > > > > > > > #define XMM1 1 > > > > > > > #define XMM0 0 > > > > > > > #define SRE 7 > > > > > > > > > > > > > > > > > > > > > Nur wie setze ich das für einen Aufruf um ? > > > > > > > #define MCUCR _SFR_IO8(0x35) > > > > > > > #define XMCRB _SFR_MEM8(0x6C) > > > > > > > #define XMCRA _SFR_MEM8(0x6D) > > > > > > > > > > > > > > > > > > > > > Danke. > > > > > > > > > > > > > > Gruss > > > > > > > peter > > > > > > > > > > > > > > > > > > > > > > > > So ich bin wieder etwas weiter : > > > > > > ---------------------------------------------------------------- > > > > > > void MCUCR $opc(0x35)(void); > > > > > > void XMCRB $opc(0x6C)(void); > > > > > > void XMCRA $opc(0x6D)(void); > > > > > > #define SRW00 2 > > > > > > #define SRW01 3 > > > > > > #define SRW11 1 > > > > > > #define XMM2 2 > > > > > > #define XMM1 1 > > > > > > #define XMM0 0 > > > > > > #define SRE 7 > > > > > > > > > > > > void main(void) > > > > > > { > > > > > > unsigned char *p,v ; > > > > > > MCUCR = MCUCR |(1 << SRE) ; > > > > > > XMCRA = XMCRA |(1 << SRW00) | (1 << SRW01) | (1 << SRW11) ; > > > > > > XMCRB = XMCRB | (0 << XMM0) | (0 << XMM1) | (0 < XMM2) ; > > > > > > > > > > > > > > > > > > p=0x2000 ; > > > > > > *p=0x55 ; > > > > > > v=*p ; > > > > > > } > > > > > > --------------------------------------------------------------------------- > > > > > > > > > > > > Jetzt kommen noch Fehler beim Pointer. > > > > > > Ist der Code dann so lauffähig ? > > > > > > Vielleich gibt es hier CC-Kenner für den M128-Pro ? > > > > > > > > > > > > > > > > > > Danke. > > > > > > > > > > > > Gruss > > > > > > peter > > > > > > > > > > > > > > > Hallo Peter, > > > > > vielleicht solltest Du auch mal die Doku lesen, bevor Du hier das Forum bombardierst. > > > > > In der Hilfe steht gleich am Anfang zum CompactC Compiler, dass er u.a. keine Zeiger unterstützt. > > > > > Franz-Peter > > > > > > > > Wer hat hier dann dafür eine Ausweichlösung ? Statt der Zeiger. > > > > > > Hallo, > > > > > > ich begreife nicht, was Du wirklich willst. Das SRAM wird automatisch vom Interpreter > > > erfasst. Dann kannst Du automatisch auf 64kb zugreifen. > > > > > > Du hast mir gesagt, Du wolltest gerne einen SRAM Zugriff über die Ports machen. Halte > > > ich für abstrus, aber wenn Du es möchtest, ok. > > > > > > Jetzt willst Du das automatische RAM Interface einschalten, in dem Du auf MCUCR, XMCRA > > > etc. schreibst. Das macht (wie gesgat) der Interpreter schon automatisch, wenn er RAM > > > findet. Also was möchtest Du eigentlich machen? > > > > > > > > > > > > > > > > > > Gruss > > > > > > Hallo, grüss dich. > > > > Ich möchte das der Interpreter nur die 4Kb internen SRAM vom Mega128 benutzt und > > ich als Anwender möchte die 64 Kb extern selber verwalten nach dem obigen Musterprogramm, > > wo mir noch der Pointerersatz fehlt, vielleicht hast du da auch netterweise eine Lösung. > > > > Da wurde doch glaube ich schon festgestellt: > > - Board aus > > - Jumper entfernen > > - Board einschalten (Interpreter erkennt nur die 4Kb intern) > > - Jumper drauf, dann gehören die 64Kb mir zur Bestimmung und nicht mehr den Variablen vom Interpreter. > > > > Das ist mein Wunsch zum experiementieren. > > Ich habe mir das Board nicht für eine Heizungssteuerung oder etwas anderes gekauft, wie es ja auch viel verwendet wird. > > Ich möchte es als Lernboard und eExperimentboard benutzen. > > Nur wenn Du MCUCR, XMCRA initialisierst, fliegt Dir der ganze Interpreter um die > Ohren, weil dann das SRAM in den normalen Adressraum eingebunden wird. > > Wenn Du expermientieren und lernen möchtest, mu�t Du: > > a) Verstehen wie das SRAM angeprochen wird (viel googlen und Hardwarebücher lesen) > b) Allein mit Zugriffen auf PortA, PortC und PortG Daten in das SRAM schreiben > > Gruss Peter > > > > > > Danke. > > > > Gruss > > peter Das SRAM ansprechen funktioniert ja vom obigen Programm in C . Das ist kein Problem. Nur das dieses SRAM von der C-control nicht vom Interpreter gelöst werden kann ist mist. Ich wollte mich von dem langsamen Interpreter lösen bei dem SRAM. Gruss peter | ||
Antwort schreiben Antworten: Re: SRAM mit C programmieren (von bierbach - 8.05.2013 17:23) Re: SRAM mit C programmieren (von bierbach - 8.05.2013 17:28) Re: SRAM mit C programmieren (von PeterS - 8.05.2013 18:38) Re: SRAM mit C programmieren (von bierbach - 8.05.2013 20:19) Re: SRAM mit C programmieren (von PeterS - 8.05.2013 16:27) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum