Für dieses Forum muß Javascript im Browser aktiviert werden!
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> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Dietmar (und alle Anderen)! > Nachdem der letzte Thread ursprünglich mit einem anderen Problem (malloc, calloc,...) begonnen > hat und deshalb etwas irreführend sein könnte fange ich nochmal einen neuen an. > > Ich möchte auf der CC2 unter C (Tasking EDE) auf globale Variablen zugreifen. Allerdings lassen > sich diese offensichtlich nicht beschreiben sondern nur lesen. > > Ich habe unten einfach mal einen Quelltext als Beispiel angehängt. Das eigentliche Programm > ist aufwändiger, aber das Problem ist hierbei das gleiche: > > Es handelt sich um den Quelltext aus Kapitel 11.6 "- Ein Speicheroszilloskop -" aus dem Buch > "Messen, Steuern, Regeln mit CC2" von B. Kainka und A. Helbig. Mit dem Unterschied, daß nach > Empfang eines Zeichens von der PC Tastatur mit 'Receive' nur ein einzelnes Zeichen (hier die '9') in > die Character-Variable 'data' gespeichert und dann mit 'Send' 5 mal über die serielle Schnittstelle > ausgegeben werden soll. Das funktioniert auch wunderbar solange 'data' lokal deklariert ist. Sobald > man 'data' global deklariert (wie unten) wird nur noch der sinnlose Inhalt der Speicherzelle > ausgegeben. Verändern läßt sich die Variable nicht. Es wird wohl auch kein Programm-Code > überschrieben, denn das Programm läuft zuverlässig aber nutzlos weiter. Die (hier auskommentierte) > 'extern' Definition ändert nichts. Auch wenn man 'data' mit '_at(0x....)' an andere Stellen speichert > ändert sich nichts. Die Compiler-Einstellungen sind wie in oben genanntem Buch in Kapitel 11 > (Also nichts besonderes verändert). > > Noch etwas: Wenn man die Zeile 'for(n=0; n<5; n++)' entfernt, kommt beim Compilieren der Fehler: > 'W 177: SECSIZE control: section 'C166_US' not found' (?!?!?). Vielleicht ist das ja interessant. > > Hier der Quelltext: > ------------------------------------------------------------------------------------- > #define REG164CI_NOOTP > #define REG164CI_NOPEC > #define REG164CI_NOCAN > #include "reg164ci.h" > > char data; > > void Send(char ch); > int Receive(void); > void Oszi(void); > > > void Send (char ch) > { ................ > } > > int Receive () > {................. > } > > void Oszi (void) > { > // extern char data; > int n; > IEN = 0; > while(1 == 1) > { > n = Receive(); > data = '9'; > for(n=0; n<5; n++) > Send(data); > } > } > ------------------------------------------------------------------------------------- > > Bin ich vielleicht einfach nur zu blind um den Fehler zu sehen? > > Gruß, Dominik