Forum: Mikrocontroller und Digitale Elektronik CC5X kann ja gar niX?


von Haeh (Gast)


Lesenswert?

Zwei erstaunliche Dinge:

Das Programm wird viel kleiner, als ich es für einen AVR (mit gcc) 
erwartet hätte.

Mehr als eine Operation verträgt CC5X wohl nicht:

a ^= (3*b) | (c >> 2);

Bringt immer "Syntax korrekt, kann aber nichts draus machen, bitte 
vereinfachen".

Ist der doof?

von Oliver (Gast)


Lesenswert?

Man kann nicht alles haben...

Das steht so sogar (fast) wörtlich auf deren homepage:

>Unfortunately CC5X is not up to the ANSI C level, so you must be prepared to 
>simplify complex expressions into statements that can be compiled to efficient 
>code. But that is a minor price to pay compared to all the benefits.

Oliver

von Haeh (Gast)


Lesenswert?

Danke für den Hinweis. Mittlerweile habe ich das Programm soweit, dass 
es kompiliert wird.

Allerdings stellt sich noch eine andere Frage:
Wenn statische, globale Variable nicht bei der Deklaration initialisiert 
werden können - wie denn dann überhaupt?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Haeh wrote:

> Wenn statische, globale Variable nicht bei der Deklaration initialisiert
> werden können - wie denn dann überhaupt?

Am Anfang von main()?

von Haeh (Gast)


Lesenswert?

Dann werde ich den Unterschied zwischen static und constant nochmal 
nachlesen.. Ich dachte, dass ergibt gar keinen Sinn.

Nächste Frage:

Kann man die Compiler-Direktiven irgendwie ausgeben lassen?

#define faktor 2
#define produkt 5*faktor
>> produkt = 10

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nein, das Ergebnis lautet, dass produkt 5*2 ist.

Du solltest dich mal informieren, wie ein Präprozessor arbeitet.

(Ob man im CC5X die Präprozessor-Makros am Ende ausgeben kann, kann
ich dir aber nicht sagen.)

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
Noch kein Account? Hier anmelden.