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.
> #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
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
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
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