Hallo, guten Tag. Die C-Control-Pro kennt nicht den gesammten C-Syntax. Eine andere Schreibweise für das "Oder" XMCRA |= (1 << SRW00) | (1 << SRW01) | (1 << SRW11) ; Funktioniert das bitte auch mit dieser Schreibweise : XMCRA = XMCRA |(1 << SRW00) | (1 << SRW01) | (1 << SRW11) ; Auch der Pointer wird nicht erkennt. Durch was kann man ihn *p ersetzen ? unsigned char *p,v ; p=0x2000 ; *p=0x55 ; Danke. Gruss peter
Nun ja, ob x |= y das selbe ergibt, wie x = x | y, sollte dir jedes noch so schwache C-Buch oder auch jede online-Beschreibung der C-Operatoren verraten. Das mit dem Pointer wird schwierig. Wen die Sprache, mit der die C-Control da programmiert werden soll, keine pointer kennt, dann kennt die halt keine. Genaueres sollte dir aber das Handbuch dazu verraten. char *sind ja nun in der Regel Strings, und irgend etwas vergleichbares sollte es schon in dem komischen C-Control-Dialekt geben. Soweit ich weiß geibtes aber Mittel und Wege, selbsterstellte hex-Files auf die C-Control aufzuspielen. Also erstelle dein Programm mit dem Coompiler, für das es gedacht ist, und spiel das fertige File auf die C-Control. Oliver
Wieso wird eigentlich auf der C-Control Pro überhaupt dieses CompactC verwendet? Wenn ich das richtig verstanden habe, werden da Programme, die in einem C-Subset geschrieben sind, in einen Byte-Code kompiliert, der dann von einem auf dem Mikrocontroller installierten Interpreter ausgeführt wird. Der in der C-Control Pro enthaltene ATmega könnte doch genauso gut mit dem GCC programmiert werden. Damit hätte man ein vollständiges und standardkonformes C zur Verfügung, und die Programme würden um ein Vielfaches schneller abgearbeitet werden. In http://www.c-control-pro.de/documentation/compactc.htm ist zu lesen:
1 | Der Sprachumfang von CompactC entspricht im wesentlichen ANSI-C, |
2 | […] |
3 | Folgende Sprachkonstrukte fehlen: |
4 | |
5 | • structs / unions |
6 | • typedef |
7 | • enum |
8 | • Konstanten (const Anweisung) |
9 | • Zeigerarithemetik |
Naja, das würde ich dann aber nicht mehr als "im wesentlichen ANSI-C" bezeichnen.
Yalu X. schrieb: > Wieso wird eigentlich auf der C-Control Pro überhaupt dieses CompactC > verwendet? Weil das Produkt für eine Zielgruppe gedacht ist, für die richtiges C zu kompliziert ist... Oliver
Oliver schrieb: >> Wieso wird eigentlich auf der C-Control Pro überhaupt dieses CompactC >> verwendet? > > Weil das Produkt für eine Zielgruppe gedacht ist, für die richtiges C zu > kompliziert ist... Ja, wahrscheinlich war das die Intention, die allerdings nicht zu Ende gedacht wurde: Auch ein vollwertiger C-Compiler zwingt den Programmieranfänger ja nicht, Dinge wie Strukturen und Zeigerarithmetik zu nutzen. Umgekehrt zwingt aber der kastrierte C-Compiler den Fortgeschrittenen C-Programmierer, sich mit dessen Restriktionen zu beschäftigen. Somit bringt CompactC gegenüber GCC nur Nachteile.
Ohne dass es bei der ursprünglichen Fragestellung hilft und von einem,
der mit diesen Baugruppen noch nicht gearbeitet hat:
Hintergrund für den Bytecoderinterpreteransatz scheint mir eher, dass
man eine Mini-SPS anbieten will. Die Beschreibung für Threads in der
Anleitung deutet sehr darauf hin. Allerdings erscheint das nicht so
wirklich gut implementiert zu sein, wenn Bibliotheksfunktionen Threads
blockieren können ("Auch interne Interpreterfunktionen gelten als ein
Zyklus. Da z.B. Serial_Read wartet, bis ein Zeichen von der seriellen
Schnittstelle ankommt, kann in Ausnahmefällen ein Zyklus sehr lange
dauern."). 'Richtiges' preemptives RTOS in einer Library zu verstecken
und aus der IDE heraus einen Compiler aufzurufen, der AVR Maschinencode
erzeugt, würde der Laufzeit zugute kommen. Aber das wird jetzt zu OT...
Zum ersten Beitrag und nur auf Grundlage der Anleitung:
- Operatoren mit Zuweisung (also z.B. |= aus der Frage) sind nicht in
der Anleitung beschrieben und sind somit bestenfalls undokumentierte
Funktionalität.
- Zu Pointern gibt es nahezu keine Hinweise und die Forumlierung "Man
kann zur Zeit nur Arrays "by Reference" übergeben!." deutet auf sehr
eingeschränkte (keine?) Funktionalität in dieser Richtung hin.
Es gibt übrigens mindestens ein Forum, in dem die Fragen besser
aufgehoben sind: http://ccpro.cc2net.de/ .
Martin Thomas schrieb: > - Zu Pointern gibt es nahezu keine Hinweise ... oder doch? Yalu X. schrieb: > Folgende Sprachkonstrukte fehlen: > ... > • Zeigerarithemetik
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.