mikrocontroller.net

Forum: Compiler & IDEs LCD-Lib ?


Autor: Hubert (Gast)
Datum:

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

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit was hast du cbi/sbi ersetzt?
Vielleicht hast du da einen Wurm hineingebracht...

Gruß Elektrikser

Autor: Hubert (Gast)
Datum:

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

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte heissen a&=~(1<<b);

Autor: Elektrikser (Gast)
Datum:

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

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Funktion kommt keine Fehlermeldung, als #define
"invalid lvalue in assinement"

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, wenn du die alten Makros verwenden willst, dann schau mal da nach:
http://www.mikrocontroller.net/forum/read-1-150732...
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...)

Autor: Hans (Gast)
Datum:

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

Autor: Elektrikser (Gast)
Datum:

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

Autor: Hubert (Gast)
Datum:

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

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.