Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Am ATmega8
Hallo
Bín noch Newbie in SAachen C. Ich habe versucht mit dem Code mein LCD an zu steuern. Der Code stammt von Ulrich Radig. Nur wenn ich ihn
compiliere bekomme ich folgende Fehlermeldung.
Compiling: main.c
avr-gcc -c -mmcu=atmega8 -I. -g -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c -o main.o
In file included from main.c:16:
./lcd.c: In function `Write_LCD':
./lcd.c:56: warning: implicit declaration of function `cbi'
./lcd.c:60: warning: implicit declaration of function `sbi'
./lcd.c:73: error: invalid lvalue in unary `&'
make.exe: *** [main.o] Error 1
> Process Exit Code: 2
Geht der Code nicht am Atmega8????
Gruss Frank
Wie kommst Du darauf daß es was mit Mega8 zu tun hat ?
Hast Du Dir die Fehlermeldungen durchgelesen?
./lcd.c:56: warning: implicit declaration of function `cbi'
./lcd.c:60: warning: implicit declaration of function `sbi'
Soweit ich weiß sind die Befehle cbi,sbi aus dem avr-gcc rausgeflogen,
man soll die Pins etwa so schalten:
PORTD |= (1<<PD1);
PORTD &= ~(1<<PD1);
Gruß Sebastian
Hallo
Danke für die schnelle Antwort. Das cbi und sbi warnt er ja nur an?!
Der Fehler ist ja anscheinend ein anderer? Wie müßte man die Zeilen denn umschreiben???
Frank
Das cbi und sbi warnt er ja nur an?!
naja, er sagt, dass du die Funktionen durch den Aufruf deklariert, also bekannt gemacht hast
wenn die Fehlermeldung kommt, heißt das, dass die Funktionen nicht oder nicht richtig deklariert wurden
in dem Fall liegt es aber einfach daran, dass die Funktionen (wie schon gesagt) aus der avrlibc rausgeflogen sind
umden Fehler zu beheben, könntest du mal schauen, ob es den Code vielleicht in einer neueren Version gibt
probiers mal hiermit mit dem mega 16 fukts an allen ports
Sorry, hab was verwechselt :-(
Gruß Sebastian
Hi Displayprogrammierer!
Ich probier grad verzweifelt, ein 5x8 2-Zeilen Display an meinem atmega8 zum Laufen zu kriegen. Erst mal will ichs
ja nur initialisieren und dann einschalten, mit blinkendem Cursor.
Anschlüsse an den atmega habe ich nach Beispiel auf mikrocontroller.net vorgenommen (allerdings mit PORTC statt PORTD) und schon mehrmals kontrolliert..
Problem: Das LCD blinkt bei den einzelnen Schritten auf, am Ende, wenn eigentlich der Cursor zu sehen sein sollte, "glimmt"
die 1. Zeile nur schwach...
Hier mein Programm:
#include <avr/io.h>
void wait(uint16_t delay_time)
{ // Funktion "Warteschleife"
...
}
void write(void)
{
PORTC|=0x20; //E auf 1 setzen
PORTC&=0xdf; //E auf 0 setzen, Display übernimmt Befehl bei fallender E-Flanke
}
int main (void)
{
DDRC=0xff;
PORTC=0x00;
wait (500);
PORTC=0x03; //8-bit Modus, 3x schreiben
write();
wait (500);
write();
wait (500);
write();
wait (500);
PORTC=0x02; //4-bit Modus initialisieren
write();
wait (5000);
PORTC=0x02; //oberes Nibble zum Befehl 4bit, 2 Zeilen, 5x8 Zeichen
write();
wait (5000);
PORTC=0x08; //unteres Nibble zum Befehl 4bit, 2 Zeilen, 5x8 Zeichen
write();
wait (5000);
PORTC=0x00; //oberes Nibble, Display ein
write();
wait (5000);
PORTC=0x0f; //unteres Nibble, Display ein, Cursor ein, blink ein
write();
}
Wär sehr dankbar für einen Tipp!
MfG, Cvecko!
SprinterSB
12.10.2005, 15:33
Willst du nun 8-bit Modus oder 4-bit Modus?
Da ist irgendwas zu viel.
:-k Hmm, gewundert hats mich ja schon, aber auf http://www.sprut.de/electronic/lcd/index.htm#init hab ichs so verstanden, dass es auf diese Weise auf jeden Fall klappen soll - eben aus dem 4- oder auch aus dem 8bit Modus heraus. Programmieren möchte ich jedenfalls im 4-bit Modus, LCD ist entspr. angeschlossen.
Danke schon mal für die fixe Reaktion!
Cvecko.
allerdings mit PORTC statt PORTD
hast du auch das JTAG-Interface deaktiviert?
So, habs hinbekommen! \:D/ Ich hab zwischendurch noch mal ein "clear" Befehl eingefügt, das hat's Display dann gefressen...
Das jtag-Interface hab ich nicht deaktiviert, ich weiß zwar was das ist, hab aber nichts entsprechendes im Datenblatt vom atmega8 gefunden (also zum Deaktivieren meine ich).
Kannst du so ausm Stehgreif sagen, wie man das deaktiviert? Falls ich das doch noch mal gebrauchen kann...
Vielen Dank für die Hilfe !Thx a lot!
mfg Cvecko
SprinterSB
14.10.2005, 11:45
Mega8 hat JTag? nö, nicht wirklich, oder?
Mega8 hat JTag? nö, nicht wirklich, oder?
ups, natürlich hat der atmega8 kein JTAG-Interface
Hallo Freunde
Ich möchte mein pollin 27x4 lcd-display an das rnmega8 an den display 20-Pin Wannenstecker anschliessen. Habe allerdings Probleme mit der Verwendbarkeit der dort bereitgestellten Ports. Ich will das pollin display im 4-Bit-Modus anwenden und es braucht 2 enable Leitungen da die 1+2, sowie 3+4 Zeile des display getrennt bedient werden müssen.
Irgendwie passt es nicht, da ich I2C, ISP und RS232 gleichzeitig verwenden will und der mega8 ja den externen Quarz verwendet, die entsprechenden Ports also ebenfalls besetzt sind.
Von den Anschlüssen ist das Pollin-Display 1:1 auf die in Bascom definierten Leitungen abzubilden. Mein Problem ist die Auswahl der Ports, sowie die am Display-Wannenstecker verfügbaren Ports, irgendwie passt das nicht!
Klar kann ich mein LCD-Display auch an die externen Klemmstecker anschliessen, der Wannenstecker wäre aber mechanisch attraktiver.
Hoffentlich habe ich mein Dilema klar gemacht und jemand kann mir einen Tip geben. danke
Hallo Hellmut,
bei RN-Mega8 kannst du ruhig den 16 poligen Stecker nehmen. Du findest für das Board und dein Display sogar hier ein Testprogramm:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=3603
Der ISP kann trotzdem zum programmieren benutzt werden, da während des programmierens ja sowieso nix auf dem Display erscheinen kann.
RS232 kannst du ohnehin weiter benutzen. Und die Quarz-Ports werden dort auch nicht genutzt, haben also nix mit dem Stecker zu tun, hast du sicher verwechselt.
Gruß Frank
Hallo....
ich verwende myavr Workpad Plus Demo und besitze Atmega8 MK1-Board.
Habe mir die LCD Dateien von Peter Fleury downgeloadet und eingebunden.
lcd.h
beim brennen bekomme ich Fehlermeldung:
Datei "globals.h" nicht gefunden...
muss man globals.h selber schreiben oder was gibt es da für
alternative???
Bin für jeden Tip Dankbar
Lieben Gruß
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.