Hallo
Ich habe das LCD "YL162-90" von Polin das tut auch, nun wollte ich es
mit einem ATmega8 ansteuern 4 bitmodus, ich habe dazu die library von
http://homepage.hispeed.ch/peterfleury/avr-software.html#libs das "LCD
library for HD44870 based LCD's" heruntergeladen und für meine Hardware
angepasst nun wollte ich das Testprogramm das dabei ist Kompilieren aber
es kommt die Fehlermeldung.:
~/AVR$ make
-------- begin --------
avr-gcc (GCC) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es
gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE
ZWECKE.
Compiling C: main.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -Wundef -MD -MP -MF
.dep/main.o.d main.c -o /main.o
Assembler messages:
Fatal error: can't create /main.o: Permission denied
make: *** [/main.o] Fehler 1
das ist mein Makefile das siech auch in dem Ordner befindet wo die
Dateien zum kompilieren sind
http://nopaste.penguinfriends.org/view/933/
ich habe das hier mal installiert und in eine init.d Datei registriert
http://www.sax.de/~joerg/mfile/
was ich da genau gemacht habe weiß ich nicht mehr aber ich vermute mal
das ich den Befehll make global gesetzt habe und das immer ein
bestimmtes Makefile ausgeführt wird.
ich benutze Kubuntu und kenne mich mit Kubuntu noch nicht so aus.
ich möchte aus den Dateien "main.c", "lcd.c", "lcd.h" eine HEX Datei
machen nun bekomme ich das nicht hin was mache ich falsch wo könnte der
Fehler sein?
MfG AT90S1200
> ... -o /main.o
Wo kommt der Schrägstrich hier her?
Du hast als normaler Benutzer nicht die Berechtigung ins Root-Directory
zu schreiben (macht auch keinen Sinn, dort die Object-Files zu
platzieren).
AT90SXXXX schrieb:> Fatal error: can't create /main.o: Permission denied
Da Du vermutlich als nicht-root Benutzer kompilierst, hast du unter /
keine Schreibrechte, und kannst somit keine /main.o anlegen.
Da stimmt was im Makefile nicht. Das sollte etwa so
... -o ./main.o
oder so:
... -o main.o
aussehen
Gruss,
rweber
Stefan Ernst schrieb:> Wo kommt der Schrägstrich hier her?
Ok, ich beantworte das mal eben selber. ;-)
Du kannst im Makefile die Zuweisung an OBJDIR nicht einfach
auskommentieren. Wenn alles ins selbe Verzeichnis soll, wie die
Source-Files, kannst du dort auch ein "." zuweisen.
ich habe im Ordner home eine weiteren ordner AVR und dort sind alle
Dateien da sollte er auch alles rein machen warum er dort ein / macht
weiß ich nicht
wie ich schon geschrieben habe stimmt dort was nicht
danke für die schnelle Antwort (-:
mfg AT90S1200
Ok
nun kommt disser Fehler.:
~/AVR$ make
-------- begin --------
avr-gcc (GCC) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es
gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE
ZWECKE.
Compiling C: main.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -Wundef -MD -MP -MF
.dep/main.o.d main.c -o main.o
Compiling C: lcd.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=lcd.lst -std=gnu99 -Wundef -MD -MP -MF
.dep/lcd.o.d lcd.c -o lcd.o
lcd.c: In Funktion »lcd_write«:
lcd.c:145: Fehler: expected expression before »)« token
lcd.c: In Funktion »lcd_read«:
lcd.c:225: Fehler: expected expression before »)« token
lcd.c: In Funktion »lcd_init«:
lcd.c:531: Fehler: expected expression before »==« token
lcd.c:542: Fehler: expected expression before »)« token
lcd.c:549: Fehler: expected expression before »)« token
lcd.c:596:5: Warnung: »KS0073_4LINES_MODE« ist nicht definiert
make: *** [lcd.o] Fehler 1
findet der die lcd.h nicht?
mfg AT90S1200
So ich habe noch mal nach geschaut:
#define LCD_PORT PORTB /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_RS_PIN 4 /**< pin for RS line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_RW_PIN 6 /**< pin for RW line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_E_PIN 5 /**< pin for Enable line */
so soll es angeschlossen sein.
und ich habe es hardwareseitig so:
#define LCD_PORT PORTB /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA4_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA5_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA6_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA7_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_RS_PIN 4 /**< pin for RS line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_RW_PIN 6 /**< pin for RW line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_E_PIN 5 /**< pin for Enable line */
der Rest stimmt über ein, kann ich das so in die lcd.h datei
reinschreiben?
ich verwende ja nur die andere Seite vom Byte?
mfg AT90S1200
okay
ich habe das jetzt so um gelötet das es PIN konform mit der lcd.h Datei
ist.
nun es kommt immer ein schwarzer Balken den ich mit dem Kontrast heller
dunkler machen kann.
ich weiß so langsam nicht mehr weiter
mfg AT90S1200
Hi
Also jetzt habe ich alles um gelötet das es mit der Hardware
übereinstimmt, an bei habe ich noch die Dateien die ich zur Verfügung
habe ich möchte einen ATmega8 verwenden, zur zeit sehe ich nur einen
schwarzen Balken und ich habe auch schon einen ATmega32, ATmega644
ausprobiert immer das gleiche Ergebnis.
mfg AT90S1200.
Eine eigene Frage?
Dieser Thread ist über 16 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.