mikrocontroller.net

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


Autor: Haeh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Haeh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haeh wrote:

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

Am Anfang von main()?

Autor: Haeh (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.