Forum: Compiler & IDEs LCD-Lib ?


von Hubert (Gast)


Lesenswert?

Hallo an alle!
Mit der neuen Version von WinAVR funktioniert meine LCDLib nicht mehr.
Ich habe schon versucht eine Funktion zu schreiben mit der die sbi und
cbi ersetzt werden. Jetzt sind zwar die Fehlermeldungen weg, die
Funktion ist aber trotzdem nicht gegeben.
Ich hatte eine von Chris efstathiou hendrix. Die konnte etliche
Varianten. Mir geht es hauptsächlich um die ohne R/W.
Hat jemand von euch eine Lib oder einen Link?
Danke im voraus.
Hubert

von Elektrikser (Gast)


Lesenswert?

Mit was hast du cbi/sbi ersetzt?
Vielleicht hast du da einen Wurm hineingebracht...

Gruß Elektrikser

von Hubert (Gast)


Lesenswert?

inline void cbi (u08 a, u08 b){
a&=(1<<b);}
Ist ziemlich sicher der Wurm, denn wenn ich das als #define mache dann
schreit der Compiler.

von Hubert (Gast)


Lesenswert?

Sollte heissen a&=~(1<<b);

von Elektrikser (Gast)


Lesenswert?

Hmmm, das funktioniert aber (aus einem Prog von mir):

#define WR_ON()  PORTD |= (1<<PD4); //(alt: #define WR_ON()
sbi(PORTD,4);)
#define WR_OFF() PORTD &=~(1<<PD4); //(alt: #define WR_OFF()
cbi(PORTD,4;)

Was für eine Fehlermeldung hast du?

von Hubert (Gast)


Lesenswert?

Als Funktion kommt keine Fehlermeldung, als #define
"invalid lvalue in assinement"

von Elektrikser (Gast)


Lesenswert?

Hmm, wenn du die alten Makros verwenden willst, dann schau mal da nach:
http://www.mikrocontroller.net/forum/read-1-150732.html#156854
Von Ingo B. ist da eine Header-Datei mit den alten Makros. Kannst ja
mal die Datei mit einbinden. Die sollte funktionieren.
(Ich würde dir aber die Standard-C-Befehle nahelegen...)

von Hans (Gast)


Lesenswert?

inline void cbi (u08 a, u08 b){
a&=~(1<<b);}


hmm wenns nach mir geht kann das ja garnicht gehn... du hat einen int..
und maskierst da das brav aus..aber das ist ja nicht der richtige int...
müsste da nicht was ala
u08 &a,u08 &b sein... weil sonnst machst du ja die zuweisungen nicht am
port sondern kopierst den inhalt vom port, maskierst herum aber die
änderungen kommen nicht aufs port...

73 de oe6jwf / hans

von Elektrikser (Gast)


Lesenswert?

O.K. waren zuviel Hmmm. :-)
Aber ich würde das cbi/sbi Zeug gleich aus meinem C-Wortschatz
streichen. Dann können es auch andere besser lesen, die von Assembler
keine Ahnung haben.

Gruß Elektrikser

von Hubert (Gast)


Lesenswert?

@Elektrikser
Danke für den Link. Mit der oldfile.h gehts. Ich werde aber versuchen
sie nur für die eine LCD-Lib zu verwenden und ev. dort gleich
integrieren.
@ Hans Ich werde mal versuchen das nachzuvollziehen, aber vorerst
gehts.

Hubert

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.