Forum: Mikrocontroller und Digitale Elektronik Bascom und Sainsmart Display


von Guggug (Gast)


Lesenswert?

Hallo Leute.

Ich schlage mir hier gerade Google's Seiten um die Ohren und finde aber 
nichts passendes dazu.


Ich habe ein Sainssmart Modul mit Atmega 2560 und ein 2 zeiliges 
Textdisplay Modul

Wenn ich das Beispiel Hello World von Arduino verwende und die Pins
wie folgt angebe, dann bekomme ich eine anständige Ausgabe auf dem 
Display
"LiquidCrystal lcd(8, 9, 4, 5, 6, 7);"

So nun zu meiner Frage..
Welche Ports muss ich in Bascom angeben um mit dem Atmega 2560 eine 
Ausgabe auf das Display zu bekommen?

Ich habe bei Arduino eine PinMapp2560.zip gefunden und darauf hin die 
Ports
PE2... PE7 deklariert.
Allerdings ohne Erfolg..

Grüße aus dem Süden und Danke für Eure Hilfe.

von Thomas D. (thomasderbastler)


Lesenswert?

Guggug schrieb:
> Welche Ports muss ich in Bascom angeben um mit dem Atmega 2560 eine
> Ausgabe auf das Display zu bekommen?

Siehe
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/

von Guggug (Gast)


Lesenswert?

Hallo Thomas... Erst mal danke für die schnelle Antwort.
Allerdings bringt sie mich nicht weiter. Auf der Halvar Seite war ich 
auch schon.

Ich habe folgendes Gerät  (DAS BILD RECHTS)..
http://www.google.de/imgres?imgurl=http://d1j1kxp9fqehmk.cloudfront.net/catalog/product/cache/1/image/500x500/9df78eab33525d08d6e5fb8d27136e95/1/_/1_11_15.jpg&imgrefurl=http://www.sainsmart.com/sainsmart-mega2560-r3-ethernet-shield-kit-for-arduino-atmega8u2-w5100.html&h=500&w=500&tbnid=6rgNguBu2FDeBM:&zoom=1&tbnh=131&tbnw=131&usg=__Dw_m0r1Uxft4ojoUcXifqTCBbiU=&docid=5i5M4TniOWyrQM&sa=X&ei=UFDCVL2VKsy9Ufm0gegD&ved=0CD0Q9QEwBw

Es ist also ein festes Stecksystem.

In Arduino werden die Pins (8, 9, 4, 5, 6, 7) für das gesteckte Display 
verwendet. Welche Ports wären das im Bascom???

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

ach---sorry muss ich passen, habe keine Ahnung von Aurduino und Co..
Die Platine schon mal gesehen, aber auch nichts mehr.

Ich weiß wie man in Bascom eine LCD anssteuert..aber Deine Umgebung sagt 
mir Nix.

von Guggug (Gast)


Lesenswert?

Jetzt habe ich 3 Stunden im Netz gesucht und nichts gefunden.. Kaum 
schreiben wir, stolper ich über die richtige Seite.

Falls es noch jemanden interessiert, welche Arduino Pins welche bascom 
Ports sind. hier ein Link dazu.

http://www.henningkarlsen.com/electronics/pm_arduino.php
Grüße aus dem Süden

von Bernhard F. (bernhard_fr)


Lesenswert?

http://arduino.cc/en/uploads/Hacking/PinMap2560big.png

Die Arduino Nummern aus deinem Arduino Aufruf entsprechen den "digital 
Pins".

Ich lese daraus:

8 -> PH5
9 -> PH6
4 -> PG5
5 -> PE3
6 -> PH3
7 -> PH4

Ich bin aber etwas iritiert: Hängt das Display nicht am I2C oder SPI? 
Das sind alles nur "OC" Pins.

von Karl H. (kbuchegg)


Lesenswert?

Guggug schrieb:
> Jetzt habe ich 3 Stunden im Netz gesucht

Das ist dir nicht zu blöd geworden?

Also ich hätt mir da mein Multimeter auf Durchgangsprüfer gestellt, 
einen Anschluss an die Klemme, mit dem anderen die Pins vom Prozessor 
abgefahren und der bei dems piepst im Datenblatt nachgesehen, welcher 
das ist. und das für die anderen 5 genauso (wobei die Chancen gar nicht 
schlecht stehen, dass die auch am Prozessor nicht weit auseinander 
sind).

Sache auf 10 Minuten.

Manchmal ist selber machen einfacher als stundenlang im Web suchen.

von Guggug (Gast)


Lesenswert?

@ Hallo Bernhard F.

Das mit den Ports sehe ich auch so nur kommt es nun drauf an wie die in 
Bascom deklariert sind... ich habe es wie unten versucht.

Config Lcdpin = Pin , Db4 = Portg.5 , Db5 = Porte.3 , Db6 = Porth.3 , 
Db7 = Porth.4 , E = PortH.6 , Rs = PortH.5

So kommt schon mal was am Display an allerdings nur Datenmüll.

Sehe ich das richtig wenn ich sage , daß DB4 bis DB7 die Datenleitungen 
sind

@Karlheinz Dafür habe ich zuviel Angst was kaputt zu machen.

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

Guggug schrieb:
> Config Lcdpin = Pin , Db4 = Portg.5 , Db5 = Porte.3 , Db6 = Porth.3 ,
> Db7 = Porth.4 , E = PortH.6 , Rs = PortH.5

So wird es nichts !
Was sagt der Compliler ? meckert...

Ein atmega hat keinen portg.5
In Bascom muss Du sagen, an welchem Port vom Controller das Signal wohin 
geht also aus dem Bsp:

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2

Datenleitung DB4 hängt am Portd.4 also PIN6 am uC..

von Karl H. (kbuchegg)


Lesenswert?

Thomas der Bastler schrieb:

> Ein atmega hat keinen portg.5

Weiss Atmel das schon?

von Guggug (Gast)


Lesenswert?

Hallo Thomas..

Der Atmega 2560 hat laut Datenblatt sehr wohl einen PortG

http://www.atmel.com/images/doc2549.pdf

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

Karl Heinz schrieb:
> Weiss Atmel das schon?

Wir reden über einen Atmega2560 oder? gibt es dort ein Anschlusspin PG5 
?
Wenn ja welche ?

von Guggug (Gast)


Lesenswert?

Thomas ... Ja Pin 1 ist PG5 wenn ich das richtig sehe.

Bascom compiliert auch Fehlerfrei.

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

Guggug schrieb:
> Pin 1 ist PG5 wenn ich das richtig sehe.

ach glatt übersehen..
Also wenn der code richtig sein sollte, dann muss entweder über 
Schaltplan oder mal durchklingeln, ob die Pins vom Atmega auch zu den 
richtigen PINs vom LCD führen.

Wie sieht der Code aus ?

von Guggug (Gast)


Lesenswert?

Hallo Thomas

Es ist das original File LCD.BAS das bei Bascom dabei ist.

Geändert habe ich den Chip

$regfile = "m2560def.dat"

und folgende Zeile

Config Lcdpin = Pin , Db4 = Portg.5 , Db5 = Porte.3 , Db6 = Porth.3 , 
Db7 = Porth.4 , E = Porth.6 , Rs = Porth.5

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

Machmal so

was für ein Quarz ist verbaut ?

$regfile = "m2560def.dat"
$crystal=4000000 
$hwstack = 32
$swstack = 10
$framesize = 40

Config Lcdpin = Pin , Db4 = Portg.5 , Db5 = Porte.3 , Db6 = Porth.3 ,
Db7 = Porth.4 , E = Porth.6 , Rs = Porth.5

Config Lcd = 16 * 2

do

locate 1,1
lcd "blabla"
locate 2,1
lcd "hier auch was"

Loop

von Guggug (Gast)


Lesenswert?

Thomas 100 Punkte. Vielen Dank.

Das Komische ist genau diese zeile hatte ich auch schon drin.
Config Lcdpin = Pin , Db4 = Portg.5 , Db5 = Porte.3 , Db6 = Porth.3 ,
Db7 = Porth.4 , E = Porth.6 , Rs = Porth.5

Ich denke das irgend etwas anderes in dem Code die Sache gestört hat.
Ich verstehe es zwar nicht ( noch nicht) aber Hauptsache es geht jetzt.

Nochmals Danke an Alle.

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

Gerne und viel Spass noch..
ansonsten..bin ganz "berühmt" hier..Du findest mich..
closed..

von Guggug (Gast)


Lesenswert?

So...

Ich dachte immer es liegt an meiner Wandlung der Pins zu Ports. Dem war 
nicht so.

Es lag am Befehl

$sim

Sobald der mit compiliert wird, kommt müll am Display an.

Grüße aus dem Süden

von Thomas D. (thomasderbastler)


Lesenswert?

$sim

Wenn dieser Befehl eingefügt wird, kann man das Programm im Bascom 
Simulieren.
Klar, muss entfernt werden, wenn eine fertige Version erstellt wird.

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
Noch kein Account? Hier anmelden.