Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > > > > > > > > > > > > > > > > > > > > > > > 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 > > > > > > > > > > Ist in der C-Control kein Byte-Code-Interpreter ? > > > Dann wird also der Programm-Code doch so umgesetzt wie ihn zb WinAvr oder Bascom schreibt als ASM -Programm ? > > > Weil ja sonst die Variablen die in der C-Control interpretiert werden aus dem SRAM langsam sind. > > > Und das wollte ich vermeiden , weil ja der Mega128 sehr fix ist und man damit eigentlich auch ein FBAS-Signal > darstellen kann. > > > Und dafür brauche ich das SRAM als Bildschrimspeicher. > > > > > > Gruss > > > peter > > In der C-Control arbeitet ein Bytecode Interpreter der C oder BASIC Programme interpretiert. > Aber schneller geht es nur mit Assembler, oder einem Compiler der Assemblercode erzeugt. > Da sind keine Variablen die irgendwo herauszulösen sind, und dann schneller laufen, da > ja immer noch der Interpreter arbeitet. > > > > > > > Wenn es nicht funktioniert werde ich den Mega128 löschen und original mit WinAvr programmieren. > > Wenn Du ein FBAS Signal erzeugen willst, brauchst Du zwingend einen Compiler der > Assembler erzeugt. Da der Mega128 mit seinen 16Mhz recht langsam ist, müssen > dann die Timings in handgecodetem Assembler geschrieben werden. Ich hatte mal > im Internet ein Projekt gesehen, das so ein einfaches Videosignal erzeugt hat. > > > > > > > Gruss > > peter