Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: SRAM mit C programmieren Kategorie: Programmierung C (von bierbach - 8.05.2013 14:40)
Als Antwort auf Re: SRAM mit C programmieren von PeterS - 8.05.2013 13:47
Ich nutze:
CC-Pro 128 Application Board, Pro-Bot128
> > > > > >
> > > > > > > > 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.

Danke.

Gruss
peter


    Antwort schreiben


Antworten:

Re: SRAM mit C programmieren (von PeterS - 8.05.2013 14:54)
    Re: SRAM mit C programmieren (von bierbach - 8.05.2013 15:55)
        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)