Hallo, ich versuche mit dem MK2 Board das MyAVR Display anzusprechen. Mein Ziel ist, dass IRGENDETWAS auf dem Display passiert. Das wäre schon ein sehr großer Erfolg. Ich habe mir dazu das Datenblatt auf Seite 11 angeguckt... http://www.myavr.info/download/techb_lcd.pdf Dort steht "Das Display wird durch das dreimalige senden von 0b0011xxxx (Soft-Reset) in den Initialisierungsmodus versetzt, dabei muss RS = 0 sein." Darin sehe ich einen kleinen Widerspruch... RS ist Port D.2. Wenn dieser Low sein soll können die doch nicht schreiben, dass 0b0011xxxx sondern, dass 0b0011x0xx geschickt werden soll oder? Außerdem meine Frage in welchem Zeitabstand dieses Signal verschickt werden soll. Müsste es nicht noch so etwas wie eine Taktleitung geben? Vielen Dank schonmal für Antworten!
>Darin sehe ich einen kleinen Widerspruch... RS ist Port D.2. Wenn dieser >Low sein soll können die doch nicht schreiben, dass 0b0011xxxx sondern, >dass 0b0011x0xx geschickt werden soll oder? Es ist nicht relevant was du denkst oder was andere schreiben. Du hast dich an das gottverschissene Datenblatt deines LCDs zu halten.
Hallo und vielen Dank für die Antwort. Ich werde jetzt nochmal nach dem "DISPLAYTECH 162" Datenblatt suchen.... aber myAVR hat dieses Display mitgeliefert und es wird insgesamt als "myAVR LCD Add-On" Ich bin auch von der Firma nicht soo begeistert aber kann man wirklich so weit gehen und behaupten, was in deren Datenblatt stünde wäre falsch und wäre nicht mit deren verkauften Hardware vereinbar? Nochmal danke für die Hilfe.
Thomas D wrote: > Darin sehe ich einen kleinen Widerspruch... RS ist Port D.2. Wenn dieser > Low sein soll können die doch nicht schreiben, dass 0b0011xxxx sondern, > dass 0b0011x0xx geschickt werden soll oder? Schau mal in den Schaltplan. Die meinen das LCD und da hast Du keinen Zugriff auf DB3..0, das ist mit den xxxx gemeint. > Außerdem meine Frage in welchem Zeitabstand dieses Signal verschickt > werden soll. Müsste es nicht noch so etwas wie eine Taktleitung geben? Gibt es, ist der Pin "E". Ein einfacher C-Code fürs LCD: http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip Da stehen auch die Timings drin, entsprechen dem HD44780-Datenblatt. Peter
Okay, danke soweit. Sprich wenn ich einen Befehl ausgeführt habe kommt E für eine ms auf low, dann wieder auf high, eine ms warten und dann nächster Befehl? Hier das Datenblatt: http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=0;INDEX=0;FILENAME=A500%252FLCD162C%2523DIS.pdf;SID=29MY@xsqwQAR0AACpSTWI654e4c217a3a333ef6475519295d9237 Die Beispielprogramme funktionieren leider nicht. Ich benutze myAVR Workpad PLUS. Das Programm: #define F_CPU 3686400 #include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include "main.h" #include "lcd_drv.h" int main( void ) { lcd_init(); lcd_pos( 0, 1 ); lcd_text( (u8*)"Zeile 1" ); lcd_pos( 1, 2 ); lcd_text( (u8*)"Zeile 2:" ); for(;;); } Und die Fehlermeldungen In file included from MAIN.c:5: c:/programme/myavrworkpadplus_demo/winavr/lib/gcc/../../avr/include/util /delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from won't work as designed" In file included from MAIN.c:6: main.h:1 1:15: error: io.h: Datei nicht gefunden. :( Ich hoffe jemand kann mir weiterhelfen. Danke.
>main.h:1 1:15: error: io.h: Datei nicht gefunden.
Da hast du wirklich ein Problem ;)
Wenn ich #include <io.h> bzw #include "io.h" hinzufüge kommt die Fehlermeldung error: io.h: Datei nicht gefunden.
> #include <avr/io.h> > #include <util/delay.h> sind die nicht vom WinAVR? Gibt es die überhaupt bei dem komischen Workpad? Ich hab auch ein MK2 Board mit MyAVR Display, aber hab gleich WinAVR benutzt, und damit gabs keine Probleme
So, habe mir WinAVR installiert. Ich habe "AVR Insight" gestartet. So schwer kann das doch garnicht sein.
Thomas D wrote: > ... oh die Frage vergessen... wo kann ich denn jetzt den Quellcode > eingeben? ^^ im Programmers Notepad
Super, danke. Dies ist ja jetzt nur eine Art Texteditor. Ich habe mal das Kleinstprogramm vom AVR-GCC-Tutorial eingefügt und als main.c sowie als Workspace abgespeichert. #include <avr/io.h> // (1) int main (void) { // (2) DDRB = 0xff; // (3) PORTB = 0x03; // (4) while(1) { // (5a) /* "leere" Schleife*/; // (5b) } // (5c) /* wird nie erreicht */ return 0; // (6) } Hat jemand Lust mir stichwortartig die nächsten Schritte zu erklären? Habe versucht die abgespeicherten Dateien mit Insight zu laden aber das will er nicht so wirklich.
Thomas D wrote: > Hat jemand Lust mir stichwortartig die nächsten Schritte zu erklären? > Habe versucht die abgespeicherten Dateien mit Insight zu laden aber das > will er nicht so wirklich. zum komiplieren: Tools > Make all zum Programmieren: Tools > Programm wahrscheinlich musst du dir zuerst noch ein makefile anlegen, siehe http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Exkurs:_Makefiles das muss man aber eigentlich nur einmal pro Projekt machen
ich hab dir mal mein makefile angehängt, welches ich mit dem USB MK2 benutze...ein paar Änderungen musst du noch machen: relativ am Anfang musst du die Werte für F_CPU (Quarzgeschwindigkeit in Hertz) und TARGET (= Filename ohne(!) .c) anpassen und etwas weiter hinten AVRDUDE_PORT auf den COM-Port setzen, wo dein USB-Programmer hingemappt wurde, also zB com1,com2,... mehr müsste nicht nötig sein €: das Ding muss in den gleichen Ordner wie dein c-File
Danke nochmal! Brauche ich das "Insight" überhaupt? Wenn ich auf Program klicke gibt es einen Fehler. Ich verwende den ATmega168. Im makefile sieht es jetzt so aus: MCU = atmega168 Folgende Fehlermeldung: selected device is not supported by programmer: m168 Brauche ich noch weitere Veränderungen im makfile?
Thomas D wrote: > Danke nochmal! > > > Brauche ich das "Insight" überhaupt? ich hab es noch nie benutzt > Im makefile sieht es jetzt so aus: MCU = atmega168 > > > Folgende Fehlermeldung: > > selected device is not supported by programmer: m168 komisch...im avrdude ist der bekannt, und laut myAVR-HP wird der auch vom mySmartUSB MK2 unterstützt
Wenn ich den atmega48 verwende kommt die entsprechend gleiche Fehlermeldung nachdem ich den makefile korrigiert habe: MCU = atmega48 vrdude: error: selected device is not supported by programmer: m48
Hier die komplette Ausgabe der Konsole: > "make.exe" program makefile:510: warning: overriding commands for target `sizebefore' makefile:348: warning: ignoring old commands for target `sizebefore' makefile:512: warning: overriding commands for target `sizeafter' makefile:352: warning: ignoring old commands for target `sizeafter' avrdude -p atmega48 -P com3 -c avr910 -U flash:w:main.hex Found programmer: Id = "AVR ISP"; type = S Software Version = 2.5; Hardware Version = 2.0 Programmer supports auto addr increment. Programmer supports buffered memory access with buffersize = 512 bytes. Programmer supports the following devices: Device code: 0x01 = (unknown) Device code: 0x02 = (unknown) Device code: 0x03 = (unknown) Device code: 0x04 = (unknown) Device code: 0x05 = (unknown) Device code: 0x06 = (unknown) Device code: 0x07 = (unknown) Device code: 0x08 = (unknown) Device code: 0x09 = (unknown) Device code: 0x0a = (unknown) Device code: 0x0b = (unknown) Device code: 0x0c = (unknown) Device code: 0x0d = (unknown) Device code: 0x0e = (unknown) Device code: 0x0f = (unknown) Device code: 0x10 = (unknown) Device code: 0x11 = (unknown) Device code: 0x12 = (unknown) Device code: 0x13 = AT90S1200 Device code: 0x14 = (unknown) Device code: 0x15 = (unknown) Device code: 0x16 = (unknown) Device code: 0x17 = (unknown) Device code: 0x18 = (unknown) Device code: 0x19 = (unknown) Device code: 0x1a = (unknown) Device code: 0x1b = (unknown) Device code: 0x1c = (unknown) Device code: 0x1d = (unknown) Device code: 0x1e = (unknown) Device code: 0x1f = (unknown) Device code: 0x20 = ATtiny84 Device code: 0x21 = (unknown) Device code: 0x22 = (unknown) Device code: 0x23 = (unknown) Device code: 0x24 = (unknown) Device code: 0x25 = (unknown) Device code: 0x26 = (unknown) Device code: 0x27 = (unknown) Device code: 0x28 = AT90S4414 Device code: 0x29 = (unknown) Device code: 0x2a = (unknown) Device code: 0x2b = (unknown) Device code: 0x2c = (unknown) Device code: 0x2d = (unknown) Device code: 0x2e = (unknown) Device code: 0x2f = (unknown) Device code: 0x30 = AT90S4433 Device code: 0x31 = (unknown) Device code: 0x32 = (unknown) Device code: 0x33 = (unknown) Device code: 0x34 = AT90S2333 Device code: 0x35 = (unknown) Device code: 0x36 = (unknown) Device code: 0x37 = (unknown) Device code: 0x38 = AT90S8515 Device code: 0x39 = (unknown) Device code: 0x3a = ATMEGA8515 Device code: 0x3b = (unknown) Device code: 0x3c = (unknown) Device code: 0x3d = (unknown) Device code: 0x3e = (unknown) Device code: 0x3f = (unknown) Device code: 0x40 = (unknown) Device code: 0x41 = ATMEGA103 Device code: 0x42 = (unknown) Device code: 0x43 = ATMEGA128 Device code: 0x44 = (unknown) Device code: 0x45 = ATMEGA64 Device code: 0x46 = (unknown) Device code: 0x47 = (unknown) Device code: 0x48 = (unknown) Device code: 0x49 = (unknown) Device code: 0x4a = (unknown) Device code: 0x4b = (unknown) Device code: 0x4c = AT90S2343 Device code: 0x4d = (unknown) Device code: 0x4e = (unknown) Device code: 0x4f = (unknown) Device code: 0x50 = (unknown) Device code: 0x51 = (unknown) Device code: 0x52 = (unknown) Device code: 0x53 = (unknown) Device code: 0x54 = (unknown) Device code: 0x55 = ATtiny12 Device code: 0x56 = ATtiny15 Device code: 0x57 = (unknown) Device code: 0x58 = (unknown) Device code: 0x59 = (unknown) Device code: 0x5a = (unknown) Device code: 0x5b = (unknown) Device code: 0x5c = (unknown) Device code: 0x5d = (unknown) Device code: 0x5e = ATtiny2313 Device code: 0x5f = (unknown) Device code: 0x60 = ATMEGA161 Device code: 0x61 = (unknown) Device code: 0x62 = (unknown) Device code: 0x63 = ATMEGA162 Device code: 0x64 = ATMEGA163 Device code: 0x65 = (unknown) Device code: 0x66 = (unknown) Device code: 0x67 = (unknown) Device code: 0x68 = AT90S8535 Device code: 0x69 = ATMEGA8535 Device code: 0x6a = (unknown) Device code: 0x6b = (unknown) Device code: 0x6c = AT90S4434 Device code: 0x6d = (unknown) Device code: 0x6e = (unknown) Device code: 0x6f = (unknown) Device code: 0x70 = (unknown) Device code: 0x71 = (unknown) Device code: 0x72 = ATMEGA32 Device code: 0x73 = (unknown) Device code: 0x74 = ATMEGA6450 Device code: 0x75 = ATMEGA6490 Device code: 0x76 = ATMEGA8 Device code: 0x77 = (unknown) Device code: 0x78 = ATMEGA169 Device code: 0x79 = (unknown) Device code: 0x7a = (unknown) Device code: 0x7b = (unknown) Device code: 0x7c = (unknown) Device code: 0x7d = (unknown) Device code: 0x7e = (unknown) Device code: 0x7f = (unknown) avrdude: error: selected device is not supported by programmer: m48 make.exe: *** [program] Error 1 > Process Exit Code: 2 > Time Taken: 00:02 Der ATMEGA48 ist hier nicht vorhanden. Auf dem AVR Board steht V2.07 In der Konsolenmeldung steht: Hardware Version = 2.0 Aber daran wirds wohl nicht liegen. Ob ich einen anderen Makefile brauche? Hast du einen dieser µC mal verwendet?
Thomas D wrote: > Hier die komplette Ausgabe der Konsole: > > Aber daran wirds wohl nicht liegen. Ob ich einen anderen Makefile > brauche? Hast du einen dieser µC mal verwendet? ich hab mit dem mySmartUSB MK2 bis jetzt ATmega8, ATmega32 und ATmega644P programmiert..wie meine Ausgabe dabei aussieht, werde ich dir allerdings erst morgen sagen können, weil ich meine Sachen nicht hier habe
also bei mir sieht es so aus: avrdude -p atmega644p -P com1 -c avr910 -U flash:w:teststand3.hex Found programmer: Id = "AVR ISP"; type = S Software Version = 2.5; Hardware Version = 2.0 Programmer supports auto addr increment. Programmer supports the following devices: Device code: 0x01 = (unknown) Device code: 0x02 = (unknown) Device code: 0x03 = (unknown) Device code: 0x04 = (unknown) Device code: 0x05 = (unknown) Device code: 0x06 = (unknown) Device code: 0x07 = (unknown) Device code: 0x08 = (unknown) Device code: 0x09 = (unknown) Device code: 0x0a = (unknown) Device code: 0x0b = (unknown) Device code: 0x0c = (unknown) Device code: 0x0d = (unknown) Device code: 0x0e = (unknown) Device code: 0x0f = (unknown) Device code: 0x10 = (unknown) Device code: 0x11 = (unknown) Device code: 0x12 = (unknown) Device code: 0x13 = AT90S1200 Device code: 0x14 = (unknown) Device code: 0x15 = (unknown) Device code: 0x16 = (unknown) Device code: 0x17 = (unknown) Device code: 0x18 = (unknown) Device code: 0x19 = (unknown) Device code: 0x1a = (unknown) Device code: 0x1b = (unknown) Device code: 0x1c = (unknown) Device code: 0x1d = (unknown) Device code: 0x1e = (unknown) Device code: 0x1f = (unknown) Device code: 0x20 = ATtiny84 Device code: 0x21 = (unknown) Device code: 0x22 = (unknown) Device code: 0x23 = (unknown) Device code: 0x24 = (unknown) Device code: 0x25 = (unknown) Device code: 0x26 = (unknown) Device code: 0x27 = (unknown) Device code: 0x28 = AT90S4414 Device code: 0x29 = (unknown) Device code: 0x2a = (unknown) Device code: 0x2b = (unknown) Device code: 0x2c = (unknown) Device code: 0x2d = (unknown) Device code: 0x2e = (unknown) Device code: 0x2f = (unknown) Device code: 0x30 = AT90S4433 Device code: 0x31 = (unknown) Device code: 0x32 = (unknown) Device code: 0x33 = (unknown) Device code: 0x34 = AT90S2333 Device code: 0x35 = (unknown) Device code: 0x36 = (unknown) Device code: 0x37 = (unknown) Device code: 0x38 = AT90S8515 Device code: 0x39 = (unknown) Device code: 0x3a = ATMEGA8515 Device code: 0x3b = (unknown) Device code: 0x3c = (unknown) Device code: 0x3d = (unknown) Device code: 0x3e = (unknown) Device code: 0x3f = (unknown) Device code: 0x40 = (unknown) Device code: 0x41 = ATMEGA103 Device code: 0x42 = (unknown) Device code: 0x43 = ATMEGA128 Device code: 0x44 = (unknown) Device code: 0x45 = ATMEGA64 Device code: 0x46 = (unknown) Device code: 0x47 = (unknown) Device code: 0x48 = (unknown) Device code: 0x49 = (unknown) Device code: 0x4a = (unknown) Device code: 0x4b = (unknown) Device code: 0x4c = AT90S2343 Device code: 0x4d = (unknown) Device code: 0x4e = (unknown) Device code: 0x4f = (unknown) Device code: 0x50 = (unknown) Device code: 0x51 = (unknown) Device code: 0x52 = (unknown) Device code: 0x53 = (unknown) Device code: 0x54 = (unknown) Device code: 0x55 = ATtiny12 Device code: 0x56 = ATtiny15 Device code: 0x57 = (unknown) Device code: 0x58 = (unknown) Device code: 0x59 = (unknown) Device code: 0x5a = (unknown) Device code: 0x5b = (unknown) Device code: 0x5c = (unknown) Device code: 0x5d = (unknown) Device code: 0x5e = ATtiny2313 Device code: 0x5f = (unknown) Device code: 0x60 = ATMEGA161 Device code: 0x61 = (unknown) Device code: 0x62 = (unknown) Device code: 0x63 = ATMEGA162 Device code: 0x64 = ATMEGA163 Device code: 0x65 = (unknown) Device code: 0x66 = (unknown) Device code: 0x67 = (unknown) Device code: 0x68 = AT90S8535 Device code: 0x69 = ATMEGA8535 Device code: 0x6a = (unknown) Device code: 0x6b = (unknown) Device code: 0x6c = AT90S4434 Device code: 0x6d = (unknown) Device code: 0x6e = (unknown) Device code: 0x6f = (unknown) Device code: 0x70 = (unknown) Device code: 0x71 = (unknown) Device code: 0x72 = ATMEGA32 Device code: 0x73 = (unknown) Device code: 0x74 = ATMEGA6450 Device code: 0x75 = ATMEGA6490 Device code: 0x76 = ATMEGA8 Device code: 0x77 = (unknown) Device code: 0x78 = ATMEGA169 Device code: 0x79 = (unknown) Device code: 0x7a = (unknown) Device code: 0x7b = (unknown) Device code: 0x7c = (unknown) Device code: 0x7d = (unknown) Device code: 0x7e = (unknown) Device code: 0x7f = (unknown) avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.05s avrdude: Device signature = 0x1e960a avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed der Mega644p wird also erkannt, obwohl er nicht in der Liste steht...auf dem myAVR-Programmer steht bei mir: mySmartUSB V2.11
Vielen Dank für die Antwort! Wie hast du das denn Hardwaretechnisch gemacht? Der atmega32 und atmega644p haben jeweils 40 Pins, das Board nur 28.
Thomas D wrote:
> Ahh, habs schon gecheckt.
nur um sicher zugehen:
den Mega8 habe ich auf dem myAVR-Board programmiert, in dem das USB-Teil
dabei dort eingesteckt war, Mega32 und Mega644u auf meiner selber
designten Platine und dem RN-Controlboard mittels des 10poligen Steckers
auf dem Programmer
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.