PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmierung MEGA128



somewhere
22.03.2005, 22:06
Habe mir ein Testset ATMega128 bei der Grazer Firma RIBU gekauft.
Leider bin ich anscheinend zu blöd um ein Programm zum laufen zu bringen.
Habe es zwar irgendwie geschafft, das Demoprogramm aus dem Speicher zu bekommen aber ein eigenes Prog läuft anscheinend nicht
(nicht mal "Hello World" schaffe ich am LCD).

Kann mir vielleicht jemand dabei helfen ???
Bin bei diesem µC leider komplett blank !!!

Danke schon jetzt für gute Tips.

Klaus_0168
22.03.2005, 22:59
Hi somewhere,

Womit arbeitest Du BasCom, WinAVR, Pascal ???

Wenn das Demoprogramm gelaufen ist, kannst Du schon mal sicher sein, das die Hardware in Órdnung ist. Poste doch mal den selbst geschriebenen Code, damit wir sehen können, was Du gemacht hast.

Ohne Info können wir nicht antworten.

Gruß Klaus

RCO
23.03.2005, 01:00
Womit arbeitest Du BasCom, WinAVR, Pascal ???

Vermutlich mit Bascom.
Der Code wäre echt ganz interessant. Schonmal nen Led-Blinker hinbekommen? Klappt die Programmübertragung denn? Was hast du denn bei Ribu gekauft? Sind das ganze Boards?

MFG Moritz

23.03.2005, 07:49
Habe komplette Boards gekauft.
Arbeite mit Bascom. Ein Verify des Programmers sagt mir, dass der Code im Flash mit dem Code im Buffer übereinstimmt.

Der Code ist simpel:

$regfile = "m128def.dat"
$crystal = 16000000

CLS
LCD "Hello World"

Settings für das LCD sind laut beiliegendem Schaltplan richtig konfiguriert.

23.03.2005, 10:11
Dieses Programm sollte funktionieren :




'Fehlersuche

'LCD mit HD44780 kompatiblem Controller
'Anschluß
'LCD Pin 1 = 0Volt (GND)
'LCD Pin 2 = +5 Volt (VDD)
'LCD Pin 3 = 0-5 Volt Kontrast (V0): Poti 10k zwischen 0V und 5V Schleifer an LCD3
'LCD Pin 4 = RS an PortA.2
'LCD Pin 5 = R/W an GND
'LCD Pin 6 = E an Porta.3
'LCD Pin 7 = DB0 'frei
'LCD Pin 8 = DB1 'frei
'LCD Pin 9 = DB2 'frei
'LCD Pin 10 = DB3 'frei
'LCD Pin 11 = DB4 an Porta.4
'LCD Pin 12 = DB5 an Porta.5
'LCD Pin 13 = DB6 an Porta.6
'LCD Pin 14 = DB7 an Porta.7

'_________________________________________________ ____________

$crystal = 16000000
$regfile = "m16def.dat"


Config Lcd = 16 * 2 'welches LCD wird verwendet ?

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
' wie ist das LCD angeschlossen - muß in einer Zeile stehen

Initlcd 'initialisiert das LCD - nicht vergessen

'--------------------------------------------------------------

Do 'Begin Hauptschleife
Cls 'löscht das LCD
Upperline 'setzt Cursor in die obere Zeile
Lcd "Erster Test"
Lowerline 'setzt Cursor in die untere Zeile
Lcd "Hallo Welt!!!"

Wait 1 'wartet 1 Sekunde
Cls 'löscht LCD
Wait 1 'wartet 1s und schreibt erneut

Loop 'erneut aufrufen
End


Du mußt hier noch die Anschlüsse von deinem LCD eintragen bei
Config Lcdpin = Pin , Db4 = Porta.4 ... sagt wie dein LCD angeschlossen ist und

config lcd = 16 *2 (= LCD mit 2 Zeilen a 16 Buchstaben) sagt welches LCD du verwendest


Du mußt in $regfile noch deinen Chip einstellen und in $chrystal noch deinen Quartz.

Konfigurationen hier im Programm haben Vorrang vor Konfigurationen im Bascom, sollten aber trotzdem übereinstimmen, sonst gibts beim Übertragen Fehlermeldungen.

Viel Erfolg Bernd

gandalf
23.03.2005, 10:14
Ich war nicht eingeloged.

Bernd (Gandalf)

23.03.2005, 10:52
Ich war nicht eingeloged.

Bernd (Gandalf)Ich habe mir mal die Datenblätter angesehen auf
http://www.ribu.at/

Die steuern das LCD im 8-Bit Mode an, das müßte ich selbst erst mal testen.
Mein Prog und Bascom verwendet den gebräuchlicheren 4-Bit Mode.
Wenn das bei dem Board geht, würde ich die Ausgänge PA0-PA3 erstmal nicht an das LCD anschließen.

Gruß Bernd