Hallo, ich möchte jetzt damit beginnen, mich mit ATMega Prozessoren ausseinanderzusetzen. Hierzu habe ich mir das AMTEL Evalutionsboard von Pollin und das Addon Board mit Display von Pollin gekauft. Dazu habe ich mir ATMeage 8, 16 und 32 Prozessorgen gekauft. Nun habe ich alledings keine Ahnung wie man das ganze überhaupt programmiert. Könnte mit jemand eventuell einen Link zu einem Toturial schicken? Mit welcher Software programmiert man die Microprozessoren, mit welcher Flasht man sie? Welche Schnitstelle auf dem Evalutionsboard soll ich nehmen (die RS232 oder die ISP)? Kann mir jemand ein Testprogramm zum Testen des ganzen Evalutionboardes und des Addonboardes (DISPLAY) schicken, damit ich sehe ob das alles überhaupt funktioniert? Mit welchen der Microprozessoren (ATMega 8, 16 oder 32) soll ich meine ersten Versuche wagen= Ja ich weiß das sind eine Menge fragen. Würde mich sehr über schnelle Antworten und Hilfe freuen. Grüße Sebastian
Hast du schon irgendwelche Programmiererfahrung? Es gibt verschiedene Programmiersprachen, mit denen Du deinen Controller programmieren kannst: Die 3 beliebtesten für ATmel-Controller sind wohl: C: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Assembler: http://www.mikrocontroller.net/articles/AVR-Tutorial Basic: http://www.roboternetz.de/wissen/index.php/Bascom Programmieren tust du den Controller am besten mit einem ISP-Adapter. Mit welchem Controller du Anfängst ist ziemlich egal, für die Einstiegsprojekte (LED leuchten lassen, ...) sind alle drei geeignet. ATMega16 und 32 sind, bis auf die Speichergröße, identisch. Eine gute Anlaufstelle für den Anfang hast du hier gefunden, aber bitte versuche auch mal, selbst ein paar Dinge herauszufinden. Anfangen zu lesen kannst du hier: http://www.mikrocontroller.net/articles/Kategorie:AVR-Tutorial und natürlich bei Google. ;)
Gut erstmal Danke für die Links. Ich werde mich erstmal einlesen und mich dann nochmal melden :)
so ich hab jetzt bissler rumprobiert und habe das Evulationsboard zum laufen bekommen (hab das Testprogramm von pollin draufgeflasht. jetzt habe ich allerdings eine Frage: Wie initialisiere ich das Display auf dem Addon Board. Es ist folgendes: LCD-Modul TC1602A-08 gibte es auch auf der pollin Seite. Danke schonmal für euere Hilfe. Grüße Sebastian
Lade Dir mal das Datenblatt zum HD44780 herunter. Da steht alles drin.
Das Beste ist, wenn du erstmal ein paar LED's zum blinken bringst und etwas mit den Tastern anstellst. Erst der nächste Schritt (wenn nicht gar der übernächste) Schritt wäre dann das Display. Als Literatur würde ich auch die Tutorials dieser Seite empfehlen. (Ohne jetzt eine neue Debatte über ASM vs. C vs. Basic lostreten zu wollen, ) Eine Liste der benötigten Software: - AVR Studio, Programmierumgebung. http://www.atmel.com/dyn/resources/prod_documents/AVRStudio4.13SP2.exe - AVR-GCC. Compiler, wenn du in C programmieren willst. http://downloads.sourceforge.net/winavr/WinAVR-20070525-install.exe?modtime=1180099243&big_mirror=0 - Datenblatt des gewählten Controllers. http://www.atmel.com/dyn/products/datasheets.asp?family_id=607 Hab' ich was vergessen?
Cool Danke also ist da dieser HD44780 drin in meinem Display (darf ich fragen wo das steht damit ich das bei anderen Displays auch finden kann)? OK ich werde euren Ratschlägen folgen und erstmal mit LEDs und Schaltern Spielen.
>also ist da dieser HD44780 drin in meinem Display (darf ich fragen wo >das steht damit ich das bei anderen Displays auch finden kann)? 98% der üblichen Dot-Matrix-Displays arbeiten mit dem oder einem kompatiblen Controller. Da will sich die Industrie nicht selbst ein Bein stellen.
Ah gut. So jetzt hab ich das erste Problem: NIch habe jetzt folgendes Programm aus dem Toturial rauskpiert und möchte es nun Assemblieren: .include "m16def.inc" ldi r16, 0xFF out DDRB, r16 ldi R16, 0B11111100 out PORTB, r16 ende: rjmp ende Wenn ich es nun versuche mit wavrasm zu Assemblieren kommt folgender Fehler: m16def.inc(39) : error : Illegal Device Name Ich habe die Datei aber aus dem AVR Ordner da reinkopiert. Kann mir jemand helfen?
"m16def.inc" ist für das AVR-Studio bestimmt. Wahrscheinlich muß die .inc-Datei für wavrasm angepaßt werden. Näheres dazu hier: Beitrag "Wavrasm und Atmel mega 8"
Hallo, Ja, mit der Schaltfläche "Build". Dann kannst du dein programm auch simulieren, bevor du es auf den controller brennst. Das geht mit "Run". Wenn du "Build + Run" betätigst, dann kannst du es gleich nach dem Assemblieren testen! MFG Mixer
Danke schön :) Hat hier schonmal jemand für das Addon Board vom Pollin eine Displayansteuerung geschrieben? Wenn ja wo finde ich diese? Grüße Sebastian
Hi! Hab das Pollin Board auch mal zusammengelötet. Warum benutzt du nicht WinAvr? Da ist ein Programmers Notepad dabei, mit dem ich z.B. code. Und ein Makefile-Tool womit man dann ein Makefile generiert und es in das Verzeichnis speichert, wo auch deine c-datei abgespeichert ist. Da gibts auch gleich ne Einstellungsmöglichkeit für AVR_DUDE und für den COM-Port usw.. Ich habs auf Ponyser eingestellt. So damit lässt sich das Programm aus dem Programmer Notepad über den Menüeintrag Tool->Make all compilieren und dann über Tool->Make Program auf das Board bringen. Ich verwende den ISP-Eingang, du wahrscheinlich auch. Für WinAvr kann ich das Tut von dieser seite hier nur empfehlen. Damit bin ich auch in AVR-Welt eingestiegen. Gruß
Hab das flashen jetzt hinbekommen. Folgendes mach der Folgende Code: .include "m16def.inc" ldi r16, 0x00 out DDRA, r16 ldi r16, 0b11111100 out PORTA, r16 ende: rjmp ende 8 LEDs sind an PA1 - PA8 angeschlossen Die ersten zwei Leuchten nicht. Die restlichen leuchten. Wenn ich das also richtig verstehe liest man das ganze von rechts nach links UND 1 bedeutet HIGH, also 5V und 0 Bedeutet LOW also 0V. Wenn da was Falsch ist bitte sagen :) Mein Alte Frage bleibt trotzdem bestehen: Gibt es hier irgendwo schon das Ganze Programm um mit dem ATMega 16 das LCD Display vom Pollin Board anzusteuern. (Kontakte am Chip sind egal da man die ja passend umstecken kann).
gibt ja leider keine EDIT: Ich will das Display Prog deswegen, damit ich testen kann ob alles funktioniert. Im moment zeigt das Display nur einen Schwarzen Strcik an (aufgeteilt in die einzelnen Zeichen). Aber nur in der ersten Zeile. Habe bereits das Script getestet das ich hier gefunden habe. Es funktioniert aber leider nicht :( Please Help :)
Ja genau. Davon habe ich den Quelltext komplett übernommen und das Display so angeschlossen wie er. Aber leider bleibt es bei dem Strich ?? Hilfe :)?
Hallo Sebastian, hast Du 4-Bit oder 8-Bit Modus angeschlossen und passt das Programm dazu - läuft der Controller und stimmt der Takt ? Notfalls lass zusätzlich eine LED blinken. Gruss Otto
Also ich habe den Quelltext der 4 Bit variante übernommen... Nichts. Ich hab gerade so eine Testsoftware gefunden. Jetzt verschwindet sogar der Balken. Bringt mir so aber nichts :( Was bringt das eine LED Blinken zu lassen? Woran soll ich die anschließen? Kann mir mal jemand den gesammten Quelltext schicken um das Display zu initialisieren und das etwas draufsteht`?
Hallo Sebastian, so wird das nichts..... > Ich hab gerade so eine Testsoftware gefunden. Jetzt verschwindet sogar > der Balken. Bringt mir so aber nichts :( Da wurde das Display wahrscheinlich richtig initialisiert und Du hättest Zeichen anzeigen können > Was bringt das eine LED Blinken zu lassen? Woran soll ich die > anschließen? Es bringt, dass Du weisst, ob der Controller läuft oder sich aufgehangen hat - ausserdem kannst Du abschätzen, ob der Takt ungefähr dem erwarteten entspricht. Du kannst später zum Debuggen bei Aufruf einer Funktion die LED anschalten und anschliessend wieder aus. Wenn Du nichts siehst, kannst Du keine Fehler finden. Gruss Otto
Hab grad die Testsoftware nochmal gestartet und gesehen das ich einen PIN vergessen hatte. Jetzt erscheint sogar ein Text :):) Jetzt müsste ich das nur noch selber schaffen. Könnte mir mal jemand einen initalisierungs code schicken der dann irgendwas anzeigt (damit ich damit rumprobieren kann). Fände ich sehr gut ^^ also das Display funzt :)
Oder noch besser in normalen Assembler. Das versteh ich momentan am meisten und es hat einen besseren Editor finde ich :) Wäre sehr nett wenn sich jemand die Mühe machen könnte und mir den weiter oben genannten Code machen könnte, damit ich damit ein wenig spielen könnte. Sorry wegen so vielen Posts aber es gibt leider keinen Edit Button :( Habe mich jetzt entgültig für Assembler entschieden (besseres Toturial)
Ach verdammt wiso gibt es hier keinen Edit Button Hab grad nen totalen schmarn zusammen geschrieben. Ich meinte natürlich AVR-GCC. Sorry wenn das jetzt für verwirrung sorgt :( Ich habe bereits erfarhungen in C und deswegen eigenet sich das am Besten. Also: Wenn sich jemand dazu bereiterklären würde mir eine TEstprogramm für das genannte Display zu schicken, indem es initialisiert wird und www.sebimax.de ausgibt wäre ich sehr dankbar. Damit kann ich mich dann erstmal austoben. Natürlich in AVR-GCC. Ein EditButton wäre echt cool :) Grüße Sebastian
es gibt schon einen edit-button...aber dafür musst du dich anmelden ;) Gruß, Marc
Würde mir dann jemand den Code schreiben oder mir dabei Helfen ihn selber zu schreiben in AVR - GCC??
Hi! Also, ich habe einmal eine C-Library geschrieben, die mit einem 8051er solche Displays ansteuert. Du müsstest nur die Portpins anpassen, dann läuft's auch bei dir. Meine Version ist für 4bit-anschgeschlossene Displays gedacht... Wenn du ein Beispiel für die Anwendung davon willst, lade ich dir das gerne auch noch hoch ;) Chris Edit: Die Idee ist nicht zu 100% von mir. Ich habe mal eine ähnliche Bibliothek irgendwo im Internet gefunden und mir das ganze selbst nach meinen Wünschen nachprogrammiert...
wie gesagt, Über ein Testprogramm würde ich mich sehr freuen. Das mit den Pins umstecken ist ja kein Problem, dam an ja auf dem Board alles so umstecken kann wie man will. Würde mich sehr darüber freuen :) Edit: hab grad gesehen das du sie schon hochgelade hast :) Danke schonmal. Werd ich mir jetzt mal ansehen Edit2: Da wird eine reg52.h eingefügt. Wo finde ich diese? Was bringt diese Dattei? Kannst du mir es komplett geben, so das ich es nur noch Flashen brauch und es funzt und dann weiterprogrammieren kann ? Kannste mir sagen wie ich das ganze am ATMega 16 anschließe?
Warum arbeitest du nicht einfach das Tutorial durch? Durch das flashen von fertigen Programmen in den Flash wirst du nicht viel lernen ...
Die reg52.h ist die Definitionsdatei von meinem Mikrocontroller. Diese Dateien werden von den meisten Compilern für die kompatiblen Controller mitgeliefert. Du müsstest also eine passende für deinen finden. Ich habe hier leider keine Möglichkeit für AVR zu kompilieren, aber folgendes Programm müsstest du auch selbst kompilieren können:
1 | #include <reg52.h> //Hier musst du die passende Datei für deinen Controller angeben |
2 | #include <LCD_Lib.c> //Ist meine vorhin hochgeladene Datei |
3 | |
4 | code char z1[21]={"*LCD-DISPLAY - TEST*"}; //Beliebiger Text in Zeile 1 |
5 | code char z2[21]={"********************"}; //Beliebiger Text in Zeile 2 |
6 | /* Die Texte dürfen nicht länger als eine Display-Zeile sein.
|
7 | Die Länge ist hier "21", da dadurch automatisch am Ende "\0" angehängt
|
8 | wird, was meine Prozeduren als Ende erkennen.
|
9 | Also 20 Zeichen -> Array der Länge 21 */
|
10 | |
11 | lcd_ini(); //Initialisieren |
12 | zeit_l(); //Kurze Verarbeitungszeit |
13 | |
14 | goto_z(1); //Zu Zeile 1 springen |
15 | print_text(z1); //Zeile 1 ausgeben |
16 | |
17 | goto_z(2); //... |
18 | print_text(z2); //... |
19 | |
20 | |
21 | while (1); //Endlosschleife... ;) |
So müsste das erstmal klappen... Chris
Okay dann werd ich das ganze mal in AVR - GCC anpassen :) ICh melde mich wenn es funktioniert oder auch wenn es nicht funzt :) Edit: @SeffenU1: Ich habe bisher jede Programmiersprache durch anschauen von fertigen Quelltexten gerlernt. Und bisher immer erfolg gehabt. Ich nutze diese Quelltexte ja auch nur für die ersten Tests. Im Endefekt werde ich dann eh meine eigenen Texte schreiben (sobald ich es kann)
Also, nochmal zum Anschließen: Du musst die Stelle lcd_lib.c anpassen:
1 | sfr LCD = 0x80; //Port 0 als Display-Ausgang |
2 | sbit LCD_E = LCD^4; //Portpin P0.4 ist "Enable" |
3 | sbit LCD_RS = LCD^5; //Portpin P0.5 ist "Register - Select" |
4 | sbit LCD_RW = LCD^6; //Portpin P0.6 ist "READ - WRITE" |
5 | sbit LCD_BG = LCD^7; //Portpin P0.7 ist Hintergrundbeleuchtung |
Die 0x80 ist bei mir die Addresse von Port0. In deinen Datenblättern müsste die passende für deinen Controller stehen. > LCD^4 bedeutet, dass Pin5 für den Enable-Pin des Displays verwendet wird > LCD^5 bedeutet, dass Pin6 für den RS-Pin des Displays genutzt wird > LCD^6 ist Pin7 und mit R/W des Displays verbunden > LCD^7 ins Pin8 und muss bei dir nicht beschaltet werden. Ich habe ihn zur Steuerung der Hintergrundbeleuchtung verwendet. Pins1-4 sind mit den Datenpins 4-7 vom Display verbunden... Chris PS: Das ganze funktioniert übrigens mit dem "RIDE"-Compiler (von Raisonance) und einem AT89S52 (8051er) von Atmel perfekt ;)
" sfr LCD = 0x80; //Port 0 als Display-Ausgang sbit LCD_E = LCD^4; //Portpin P0.4 ist "Enable" sbit LCD_RS = LCD^5; //Portpin P0.5 ist "Register - Select" sbit LCD_RW = LCD^6; //Portpin P0.6 ist "READ - WRITE" sbit LCD_BG = LCD^7; //Portpin P0.7 ist Hintergrundbeleuchtung sbit LCD_BF = LCD^3; //Portpin P0.3 ist DatenPin7, enthält aber bei LCD_RS=0 und LCD_RW=1 den "Busy-Flag" " Woran soll ich das Display nun anschließen?? PA, PB, PC, .... ????
An einen beliebigen Port. Du musst nur die Addresse des Ports herausfinden (hab' ich vorhin was zu geschrieben) Chris
Oh mann ich komm mit dem Blöden Makefiles überhaupt nicht zurecht. Da kommen immer beschissene Fehlermeldungen. Aus dem Grund werde ich wahrscheinlich doch bei Assembler bleiben. Da funzt wenigstens der Compiler ^^. Also nochmal ein neuer Aufruf: Hat jemand eine Initialisierung in Assembler die das Display initialisiert und etwas anzeigt (Text)? Wäre nett wenn den jemand posten könnte. Alternativ: Erklärt mir jemand warum meine Makefile immer den selben Fehler bringt: > "make.exe" all 0 [main] sh 2868 sync_with_child: child 1436(0x11C) died before initialization with status code 0x0 9661 [main] sh 2868 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable 0 [main] sh 1308 sync_with_child: child 3876(0x11C) died before initialization with status code 0x0 27558 [main] sh 1308 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable -------- begin -------- avr-gcc (WinAVR 20080402rc1) 4.3.0 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling C: lcd-routines.c avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./lcd-routines.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/lcd-routines.o.d lcd-routines.c -o lcd-routines.o In file included from lcd-routines.c:2: lcd-routines.h:15:1: warning: "F_CPU" redefined <command-line>: warning: this is the location of the previous definition lcd-routines.c: In function 'set_cursor': lcd-routines.c:121: warning: 'tmp' may be used uninitialized in this function lcd-routines.c: At top level: lcd-routines.c:160: fatal error: opening dependency file .dep/lcd-routines.o.d: No such file or directory compilation terminated. make.exe: *** [lcd-routines.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:00 Makefile im Anhang. In den 2 weiteren Files kommt mein Quellcode (eimal als .c und die andere als .h)
Sebastian H. wrote: > Oh mann ich komm mit dem Blöden Makefiles überhaupt nicht zurecht. Da > kommen immer beschissene Fehlermeldungen. Eigentlich antworte ich nicht auf Postings mit dieser Ausdrucksweise. Warum doch, hat nur mit dieser Zeile zu tun: > avr-gcc (WinAVR 20080402rc1) 4.3.0 Anscheinend gibt es einen Versuchsballon für ein neues WinAVR. Diese Zeilen sehen allerdings nicht gut aus: >> "make.exe" all > 0 [main] sh 2868 sync_with_child: child 1436(0x11C) died before > initialization with status code 0x0 > 9661 [main] sh 2868 sync_with_child: *** child state waiting for > longjmp > ... Das sind Probleme, die früher schon unter MingGW bzw. Cygwin übersetzten Programmen aufgetaucht sind. Edit: http://www.google.de/search?hl=de&q=sh+sync_with_child&btnG=Suche&meta= Hier gibt es eindeutig Probleme mit den WiNAVR-Programmen, die von Make aufgerufen wurden, um den Sourcecode zu übersetzen. Letztendlich führt das dazu, dass die Übersetzung nicht abgeschlossen werden konnte und deshalb auch keine Objektdatei erstellt wurde. Das führt dann zuerst zu einer Linker-Fehlermeldung (kann keine Ojektdatei finden) und dann zu einer Make-Fehlermeldung (Linker hat sich beschwert). > lcd-routines.c: At top level: > lcd-routines.c:160: fatal error: opening dependency file > .dep/lcd-routines.o.d: No such file or directory > compilation terminated. > make.exe: *** [lcd-routines.o] Error 1 > >> Process Exit Code: 2 >> Time Taken: 00:00 Mit der WinAVR Version 20071221 (GCC 4.2.2) kann dein Projekt mit obigem Makefile, lcd-routines.c und lcd-routines.h problemlos übersetzt werden.
Add: Die Übersetzung genau dieses Projekts ist als HEX-Datei im Anhang.
Sry wegen den Ausdrucksweise (war bisserl stinkig weil ich 2 Stunden davor probiert hab und rein gar nix ging. Ich lad mir jetzt mal die andere Version und teste es erneut. :) Danke auch für das umwandeln. Werde ich auch testen und bescheid geben. Danke (ich mag dieses Forum. Da wird einem sehr gut geholfen) Edit: Leider funktioniert mein Code nicht. Es bleibt ein Schwarzer streife. Also stimmt in der initialisierung irgendwas nicht. Weiß da jemand weiter? Grüße Sebastian
So habe das ganze nochmal Probiert: ------- begin -------- avr-gcc (GCC) 4.2.2 (WinAVR 20071221) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling C: lcd-routines.c avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./lcd-routines.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/lcd-routines.o.d lcd-routines.c -o lcd-routines.o In file included from lcd-routines.c:2: lcd-routines.h:15:1: warning: "F_CPU" redefined <command-line>: warning: this is the location of the previous definition lcd-routines.c: In function 'lcd_enable': lcd-routines.c:55: error: called object '_delay_us(5.0e+1)' is not a function lcd-routines.c:60: error: called object '_delay_us(5.0e+1)' is not a function lcd-routines.c:162:2: warning: no newline at end of file lcd-routines.c: At top level: lcd-routines.c:162: fatal error: opening dependency file .dep/lcd-routines.o.d: No such file or directory compilation terminated. make.exe: *** [lcd-routines.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:00 kommt mit der Makefile im Anhang. Habe mir jetzt die oben genannte Version geladen. Woher kommt diese Datei? lcd-routines.c:162: fatal error: opening dependency file .dep/lcd-routines.o.d: No such file or directory compilation terminated. Wäre dankbar für weitere unterstützung bei diesem Problem und bei dem oben genannten Problem.
Zwei Stunden Fehlersuche sind Peanuts. Da musst du noch dickfelliger werden oder fruher sinnvoll fragen ;-) Gut ist, dass das ältere WinAVR auf deinem Rechner nicht abstürzt. Schlecht ist, dass du jetzt Änderungen im Sourcecode gemacht hast, die neue Übersetzungsfehler hervorrufen: > lcd-routines.c:55: error: called object '_delay_us(5.0e+1)' is not a > function > lcd-routines.c:60: error: called object '_delay_us(5.0e+1)' is not a > function Du könntest mal statt _delay_us(5.0e+1) schreiben _delay_us(50). _delay_us(50) geht bei meinen Programmierexperimenten. Und bitte angewöhnen, bei Fragen genau den Sourcecode anzugeben, der den Fehler oder die Probleme verursacht. Anders wird das Antworten zum Ratespiel, auf das sich nicht viele potenzielle Helfer einlassen. ADD: Ein schwarzer Streifen im LCD kann mehrere Ursachen haben. Die banalste Ursache kann ein falsch eingestellter Kontrast sein. Eine dffizilere Ursache kann eine falsche Initialisierung des LCD-Controllers des LCDs sein.
OK also hab das geändert. Folgender Fehler tritt mit der oben geschickten Makefile immer noch auf: lcd-routines.c:162: fatal error: opening dependency file .dep/lcd-routines.o.d: No such file or directory Aber die Datei gibt es ja gar net ^^ Die steht auch nirgendwo in der Makefile wenn ich mich net täusche. Der oben genannte fehler: > lcd-routines.c:55: error: called object '_delay_us(5.0e+1)' is not a > function > lcd-routines.c:60: error: called object '_delay_us(5.0e+1)' is not a > function lag daran das ich den Strichpunkt vergessen hatte ^^ Hier dann der gesammte Auszug: ------ begin -------- avr-gcc (GCC) 4.2.2 (WinAVR 20071221) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling C: lcd-routines.c avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./lcd-routines.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/lcd-routines.o.d lcd-routines.c -o lcd-routines.o In file included from lcd-routines.c:2: lcd-routines.h:15:1: warning: "F_CPU" redefined <command-line>: warning: this is the location of the previous definition lcd-routines.c:162:2: warning: no newline at end of file lcd-routines.c: In function 'set_cursor': lcd-routines.c:123: warning: 'tmp' may be used uninitialized in this function lcd-routines.c: At top level: lcd-routines.c:162: fatal error: opening dependency file .dep/lcd-routines.o.d: No such file or directory compilation terminated. make.exe: *** [lcd-routines.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:00
Könnte mir jemand vielleicht seine makefile schicken, von der er weiß das sie funktioniert ? Vielleicht hab ich ja irgendwo in der Makefile einen Fehler reingemacht ^^
Sebastian H. wrote: > Folgender Fehler tritt mit der oben geschickten Makefile immer noch auf: > > lcd-routines.c:162: fatal error: opening dependency file > .dep/lcd-routines.o.d: No such file or directory > > Aber die Datei gibt es ja gar net ^^ > Die steht auch nirgendwo in der Makefile wenn ich mich net täusche. Die Datei lcd-routines.o.d und der Ordner .dep werden vom AVR-GCC automatisch erstellt (s. Optionen -MMD -MP -MF .dep/lcd-routines.o.d im Makefile). Es bringt nichts, dir ein anderes Makefile zu suchen. Das Makefile oben funktioniert und alle anderen Makefiles sind ähnlich aufgebaut. Die Probleme liegen anderswo. Leider habe ich derzeit keine Idee wo, weil die Probleme hier nicht auftreten und mir deine Fehlermitschnitte nichts sagen. Ich schlage vor, dass du mal die Programmierumgebung säuberst, indem du von Make die automatisch erzeugten Zwischendateien löschen lässt: make clean Dann startest du einen neuen Übersetzungsversuch make all Dann nachsehen, ob es das Verzeichnis .dep gibt (Probleme beim Erzeugen des Ordners?). Und ob eine Datei drin steht (Probleme beim Erzeugen der Datei?).
OK habe das gemacht. Wenn ich make clean mache kommt folgendes: > "make.exe" clean 0 [main] sh 4600 sync_with_child: child 5048(0x11C) died before initialization with status code 0x0 195 [main] sh 4600 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable 0 [main] sh 4560 sync_with_child: child 2792(0x11C) died before initialization with status code 0x0 27966 [main] sh 4560 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable -------- begin -------- Cleaning project: rm -f lcd-routines.hex rm -f lcd-routines.eep rm -f lcd-routines.cof rm -f lcd-routines.elf rm -f lcd-routines.map rm -f lcd-routines.sym rm -f lcd-routines.lss rm -f ./lcd-routines.o rm -f ./lcd-routines.lst rm -f lcd-routines.s rm -f lcd-routines.d rm -f lcd-routines.i rm -rf .dep -------- end -------- > Process Exit Code: 0 > Time Taken: 00:01 Habe auch dannach Make All gemacht und es ging nichts. Könnte es am Betriebssytem liegen?? Ich hab das ganze im Moment auf Vista laufen. Flashen tu ich mit meinem zweitrechner?
Läuft ein Windows VISTA mit 64-Bit auf deinem Rechner? Damit gibt es ähnliche Fehlerberichte http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=44251&start=100 Dort und auf der folgenden Seite gibt es auch Hinweise vom User Madwizard zum "sync_with_child" Problem, wie man versuchen kann, das Problem zu lösen. http://www.madwizard.org/electronics/articles/winavrvista
jo läuft mit 64 Bit Ich probiers mal auf meinem XP Rechner. Daran hätte ich denken sollen. Edit: Tatsächlich, das wars. Auf dem XP Rechner läuft es einwandfrei :) DANKE DANKE DANKE
Display initialisert aber leider trotzdem nicht :( Wieso initialisiert das Display nicht ?? Ich versteh das einfach nicht :(
Display initialisiert. Also der Balken verschwindet. Allerdings mit einem Anderen Code. Dieser ist im Anhang. Allerdings habe ich das Problem, das das Display keinen Text anzeigt. Woran könnte das liegen? Angeschlossen ist es wie in der Anleitung beschrieben. DB0 - DB3 sind nicht angeschlossen Der Rest wie beschrieben. Ist da ein Fehler im Script oder ein Fehler meiner Seite?
hat sich erledigt hab selber ein Prog geschrieben und nun Funktioniert es :)
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.