Forum: Compiler & IDEs #define Problem


von Martin Hofmann (Gast)


Lesenswert?

Warum funktioniert das nicht:

#define MYPIN PORTD,0

sbi(MYPIN);

Vielen DAnk,

Gruß Martin

von Kurt (Gast)


Lesenswert?

Vielleicht PORTD.0 ?

von Tobias Krühn (Gast)


Lesenswert?

Klammern setzen ?
Also

#define (MYPIN) (PORTD,0)

oder

#define MYPIN (PORTD,0)

oder so...

von Jörg Wunsch (Gast)


Lesenswert?

sbi() ist `deprecated'.

von Martin (Gast)


Lesenswert?

Zum Thema "deprecated":
Ich habe gelesen, dass timer.h und avr/timer.h auch deprecated sind.
Wie kann ich nun meinen AVR zeitlich ansteuern?

Martin

von Jörg Wunsch (Gast)


Lesenswert?

Naja, guck doch mal in die Datei rein: da wärst Du sicher nie drauf
gekommen, diese paar Zeilen gleich selbst in Deinen Code zu schreiben,
oder? ;-) (bzw. den Teil davon, den Du tatsächlich benötigst)

Das wesentliche Problem dieser Datei ist, daß die Funktionen nur für
den timer 0 drin stehen und daß die Bitdefinitionen sowieso nur für
einige AVRs gelten -- beim ATmega128 z. B. sind die Bitpositionen der
Vorteilerbits anders.  Du wirst also nicht umhinkommen, einfach das
Datenblatt zur Hand zu nehmen.

Die ,,Funktion'' timer0_source war eine aufwendige Reimplementierung
einer simplen Zuweisung, die noch dazu so unglücklich benannt ist, daß
wohl keiner freiwillig drauf kommt, sie zum Einstellen des
Steuerregisters von Timer 0 zu benutzen.  Die Funktionen zum Starten
und Anhalten des Zeitgebers wiederum können noch nie funktioniert
haben, weil das Verfahren ein ganz anderes ist (siehe Datenblatt).
Offensichtlich hat diese nie einer benutzt, sonst hätte er schon
längst einen Bugreport geschrieben. ;-)

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.