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
Mit was hast du cbi/sbi ersetzt? Vielleicht hast du da einen Wurm hineingebracht... Gruß Elektrikser
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.
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?
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...)
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
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.