loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Digitale Lösung für Schaltungen / Problem?
Gehe zu Seite Zurück  1, 2, 3 ... 8, 9, 10 ... 18, 19, 20  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Microcontroller und DSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: So 20.Apr 2008 20:38:41    Titel: Bauteile finden Antworten mit Zitat

Hallo!

Verzeiht mir, dass es derzeit nicht weiter geht. Ich habe mir (saublöd) mit Kabelanlöten mein LCD ruiniert. Und ich will hier nichts veröffentlichen, was ich nicht mit Tests untermauern kann. Es wird weiter gehen, sobald ich neue LCDs von Pollin bekommen habe.

lg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 24.Apr 2008 22:15:48    Titel: LCD - Liquid Crystal Display - Textanzeige Bauteile finden Antworten mit Zitat

Hallo!

In diesem Beitrag möchte ich darüber berichten wie man LCDs (Liquid Crystal Displays) mit Bascom ansteuert. Damit meine ich die ein- oder mehrzeiligen Textdisplays (alphanumerisch), nicht die Grafikdisplays. Die Grafikdisplays sind etwas schwieriger zu handhaben und sind vielleicht mal Thema eines anderen Beitrags.

Gleich vorab. Eigentlich ist es sehr einfach. Man sucht in der Bascom-Hilfe nach "LCD", liest sich alles durch, schließt das LCD an und fertig. Alles was ich noch bieten kann, ist ein kleiner Bericht der aufzeigt wie ich es gemacht habe und vielleicht noch eine kleine Auflistung der wichtigsten LCD-Befehle.

Viele Text-LCDs verwenden den LCD-Controller HD44780. Diese und alle kompatiblen Displays werden von Bascom voll unterstützt. Solche LCDs bekommt man ziemlich günstig bei http://www.pollin.de/shop/shop.php. Wenn man dort im Shop nach "Industriestandard" sucht, dann findet man ein paar wirklich günstige LCDs, die mit Bascom funktionieren sollten.

Gängige LCD-Controller:
- HD44780/HDD44780 (Industriestandard, kein Problem mit Bascom)
- SED1278 (kompatibel zum HD44780, kein Problem mit Bascom)
- KS0073 (teilweise kompatibel zum HD44780, kein Problem mit Bascom)
- LC7985 (kompatibel zum HD44780)
- M50530 (???)
- SED1531 (???)

Es gibt zwei Möglichkeiten wie Bascom ein LCD ansteuert. Entweder über einen Datenbus (BUS-Modus) oder über auswählbare Pins eines Ports (PORT-Modus). Der BUS-Modus ist nur dann möglich, wenn man z.B. auch einen externen Speicher an den AVR-µC anhängen kann (Bus Interface). Dann teilen sich der externe Speicherbaustein und das LCD die Leitungen. Der ATmega8 hat keinen solchen Bus. Für uns ist nur der PORT-Modus interessant. Im PORT-Modus können wir selber bestimmen an welchen Pins das LCD hängt. Dafür braucht dieser Modus aber auch etwas mehr Programmspeicher im µC.

Die Daten können an das LCD über 8 oder 4 µC-Pins übermittelt werden (8-Bit Modus bzw. 4-Bit Modus). Der 8-Bit Modus ist ein wenig schneller. Dafür werden im 4-Bit Modus nicht so viele µC-Pins belegt.

Die LCDs mit HD44780-Controller stellen normalerweise diese Anschlüsse bereit:
Code:
01 -- GND (VSS)
02 -- 5 V (VCC oder VDD)
03 -- Kontrast (VO oder VEE)
04 -- RS (Register Select)
05 -- R/W (Read/Write)
06 -- E (Enable)
07 -- D0 (Datenbit 0, im 4-Bit Modus nach GND schalten)
08 -- D1 (Datenbit 1, im 4-Bit Modus nach GND schalten)
09 -- D2 (Datenbit 2, im 4-Bit Modus nach GND schalten)
10 -- D3 (Datenbit 3, im 4-Bit Modus nach GND schalten)
11 -- D4 (Datenbit 4)
12 -- D5 (Datenbit 5)
13 -- D6 (Datenbit 6)
14 -- D7 (Datenbit 7)
15 -- evt. Hintergrundbeleuchtung, siehe Datenblatt
16 -- evt. Hintergrundbeleuchtung, siehe Datenblatt


Anschluss an den ATmega8:
Code:
LCD-Pin 1  (VSS)      -->  GND
LCD-Pin 2  (VDD)      -->  5 V Versorgungsspannung
LCD-Pin 3  (Kontrast) -->  z.B. Poti/Trimmer für Kontrasteinstellung
LCD-Pin 4  (RS)       -->  an einen Pin des ATmega8 (z.B. PORTD.2)
LCD-Pin 5  (R/W)      -->  GND
LCD-Pin 6  (E)        -->  an einen Pin des ATmega8 (z.B. PORTD.3)
LCD-Pin 7  (D0)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 8  (D1)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 9  (D2)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 10 (D3)       -->  im 4-Bit Modus nach GND schalten
LCD-Pin 11 (D4)       -->  an einen Pin des ATmega8 (z.B. PORTD.4)
LCD-Pin 12 (D5)       -->  an einen Pin des ATmega8 (z.B. PORTD.5)
LCD-Pin 13 (D6)       -->  an einen Pin des ATmega8 (z.B. PORTD.6)
LCD-Pin 14 (D7)       -->  an einen Pin des ATmega8 (z.B. PORTD.7)
LCD-Pin 15 (HG-Bel.)  -->  siehe Datenblatt
LCD-Pin 16 (HG-Bel.)  -->  siehe Datenblatt


Leider gibt es große Unterschiede zwischen den Displays, was die Temperaturabhängigkeit betrifft. LCDs für Normaltemperaturen arbeiten meist mit einer positiven Spannung am VO-Pin (Kontrast). Und Displays mit erweitertem Temperaturbereich oder große Displays, brauchen meist eine negative Spannung am VO-Pin. Leider findet man gerade bei Billig-LCDs erst beim Anschließen heraus, mit welcher Spannung der VO-Pin versorgt werden muss.

Ziemlich gute Informationen bekommt man unter http://www.sprut.de/electronic/lcd/index.htm. Also wenn dein Display nicht so funktioniert wie es funktionieren sollte, dann lohnt es sich, dort mal vorbei zu schauen und sich geballtes Wissen über die LCDs rein zu ziehen. Und zum Erstellen der evt. benötigten negativen Spannung, hat sprut.de auch etwas zu sagen: http://www.sprut.de/electronic/switch/minus.html

Das Problem mit der negativen Spannung umgeht man am einfachsten, mit einem neuen LCD. Wink Für meine ersten Tests verwende ich das bei Pollin gekaufte "Powertip PC 1602-F". Leider ist Pollin nicht gerade verlässlich, was die Verfügbarkeit der Produkte betrifft. Es kann also leicht sein, dass dieses LCD nicht erhältlich ist wenn du bei Pollin danach suchst.





Die normalen LCD-Routinen von Bascom nutzen den R/W-Pin nicht. Es wird einfach lange genug gewartet, so dass Bascom das LCD nicht auslesen muss. Die Mindestwartezeiten sind im HD44780-Datenblatt aufgeführt. Das funktioniert ziemlich gut.

Der R/W-Pin muss nur dann beschaltet werden, wenn man in Bascom die LCD-Routinen einer Zusatz-Library, wie z.B. die LCD4BUSY-Library http://avrhelp.mcselec.com/index.html?lcd4busy.htm, nutzt. Das bringt's aber nur, wenn das LCD sehr schnell reagieren soll. Z.B. wenn sich die Anzeige nicht nur alle Sekunden, sondern im Millisekundenbereich ändern soll. Dann könnte es auch sehr langsame LCDs geben, die sich nicht an das ausgemachte Timing halten. Dann kann man den R/W-Pin in Verbindung mit der LCD4BUSY-Library ebenfalls nutzen.

Aber im Normalbetrieb und so lange es keine Probleme damit gibt, ist es nicht notwendig den R/W-Pin an den µC anzuschließen. Zumindest nicht, wenn man Bascom nutzt.

Die Ansteuerung eines LCD läuft unter Bascom ähnlich einfach wie die Ausgabe von Text mit dem Befehl ``PRINT``. Statt mit ``PRINT`` an die UART, schickt man den Text mit dem Befehl ``LCD`` an das Display. Zusätzlich gibt es noch ein paar Befehle um den Cursor auf dem Display zu positionieren und das Display zu löschen. Aber viel mehr ist nicht dahinter. Das Schwierigste an der Sache ist, das Display richtig anzuschließen und in Bascom richtig zu konfigurieren.

Zum Konfigurieren des LCD stellt Bascom ein paar Befehle zur Verfügung. Da für uns nur der PORT-Modus interessant ist, gehe ich nicht näher auf die Befehle für den BUS-Modus ein. Wenn man nicht toll herumkonfiguriert, dann nimmt Bascom an, dass wir das LCD im 4-Bit PORT-Modus ansprechen möchten.

CONFIG LCDPIN:
Mit diesem Befehl wird Bascom mitgeteilt, welche Pins zur Ansteuerung des LCDs verwendet werden.
Das würde für den oben gezeigten Schaltplan so aussehen:
Code:
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
   Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2

Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?config_lcdpin.htm


CONFIG LCD:
Damit gibt man den Typ des Displays an. Gemeint ist die Anzahl an Zeilen und Spalten. Mögliche Einstellungen sind:

- 16 * 1, 16 * 1a, 16 * 2 (Standard), 16 * 4
- 20 * 2, 20 * 4, 20 * 4A
- 40 * 4

Weiters kann man mit diesem Befehl auch die Verwendung eines anderen Chipsatzes einstellen. Neben dem Standard (HD44780) kann man noch zwischen "KS077" und "DOGM" wählen. Nähere Infos stehen in der Hilfe zu diesem Befehl.

Beispiel:
Code:
Config Lcd = 16 * 2

Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?config_lcd.htm


Die Anzeige des LCD bestimmen hauptsächlich die vier Befehle ``CURSOR``, ``CLS``, ``LOCATE`` und ``LCD``. Es gibt noch weitere LCD-Befehle wie z.B. ``HOME``, ``SHIFTLCD``, ``SHIFTCURSOR``, ``DISPLAY`` und ``INITLCD``. Nähere Infos darüber findest du in der Bascom-Hilfe. Weiters sollte man wissen, dass die Ausgabe auf ein LCD ziemlich langsam ist und deshalb der Befehl ``LCD`` nicht in einem Interrupt-Handler eingesetzt werden sollte.


CURSOR:
Mit diesem Befehl stellt man das Verhalten des Cursors ein. Der Cursor ist bei LCDs meist ein Unterstrich. Diesen kann man ein-/ausschalten und blinken lassen.
Beispiele:
Code:
CURSOR OFF

Code:
CURSOR ON BLINK

Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?cursor.htm


CLS:
``CLS`` löscht das Display und setzt den Cursor in die linke, obere Ecke.
Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?cls.htm


LOCATE:
``LOCATE`` setzt den Cursor in die angegebene Zeile und Spalte.
Beispiel:
Code:
LOCATE 1, 1 ' Zeile 1 Spalte 1
LOCATE 2, 10 ' Zeile 2 Spalte 10

Statt ``LOCATE 1, 1`` könnte man auch den Befehl ``HOME`` verwenden.
Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?locate.htm


INITLCD:
Dieser Befehl initialisiert das Display. ``INITLCD`` braucht man im Normalfall nicht, da Bascom das Display automatisch beim Start initialisiert. Aber ``INITLCD`` bietet sich an, um zwischendurch das Display zurück zu setzen, falls etwas (z.B. ein Relais) die Displayausgabe gestört hat. Das Initialisieren dauert ein wenig und sieht manchmal auch nicht besonders gut aus. Deshalb sollte man es nicht übertreiben und das Display nur nur im Notfall alle paar Minuten und im Normalfall nur alle paar Stunden neu initialisieren. Wie oft du ``INITLCD`` wirklich einsetzt, musst du natürlich selber entscheiden. Wenn Störungen öfter auftreten, dann solltest du dir vielleicht lieber Gedanken über eine bessere Entstörung der Schaltung machen.
Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?initlcd.htm


LCD:
Mit diesem Befehl schreibt man auf das Display. ``LCD`` verhält sich sehr ähnlich dem ``PRINT``-Befehl und kann meist genau so eingesetzt werden. Statt mit ``PRINT`` auf die UART, schreibt man mit ``LCD`` auf das Display.
Beispiel:
Code:
CLS
LCD "Zeile 1"
LOCATE 2, 1
LCD "Zeile 2!

Die Hilfe zu diesem Befehl findet man hier: http://avrhelp.mcselec.com/index.html?lcd_2.htm


Einfaches "Hallo Welt"-Beispiel:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 30
$framesize = 60


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


Cls
Locate 1 , 1
Lcd "Hallo Welt"


End




"Hallo Welt"-Beispiel mit Zähler:
Die Erklärungen stehen im Quellcode.
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 30
$framesize = 60


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
Cursor Off

Dim Initcounter As Byte
Dim Bt As Byte
Dim S As String * 2


Do
   For Initcounter = 1 To 36
      'LCD löschen
      Cls

      'Haupttext der ersten Zeile anzeigen
      Locate 1 , 1
      Lcd "Hallo Welt...."

      'Haupttext der zweiten Zeile anzeigen
      Locate 2 , 1
      Lcd "Servus LCD...."

      'Jede Sekunde um 1 hochzählen und neuen Wert anzeigen
      For Bt = 1 To 99
         'Neuen Wert in einen Text umwandeln
         S = Str(bt)
         S = Format(s , "00")

         'Neuen Wert in der ersten Zeile ab Spalte 15 anzeigen
         Locate 1 , 15
         Lcd S

         'Neuen Wert in der zweiten Zeile ab Spalte 15 anzeigen
         Locate 2 , 15
         Lcd S

         'Eine Sekunde warten
         Wait 1
      Next Bt

      'Das LCD nach ca. einer Stunden neu initialisieren
      If Initcounter = 36 Then
         Initlcd
      End If
   Next Initcounter
Loop

End




Der Haupttext wird jede Minute neu geschrieben. Die Zahl wird jede Sekunde neu geschrieben. Es wird also nicht jede Sekunde alles neu geschrieben, sondern nur der sich ändernde Bereich (die Zahl). Würde man jede Sekunde das ganze Display löschen und neu beschreiben, dann würde die Anzeige unangenehm flackern.


mfg
Gerold
Smile


EDIT: Anschlussplan geändert: Es ist keine schlechte Wahl, im 4 Bit Modus die Pins D0..D3 des LCDs nach GND zu schalten.

.

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.


Zuletzt bearbeitet von gerold am Fr 25.Jul 2008 21:24:09, insgesamt 10-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: Do 24.Apr 2008 22:28:08    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

du hast beim 4-Bit-Anschluss die DB0-DB3 auf GND gezogen. Dies sollte man besser nicht tun, weil das Display im Read-Mode u.U. dort ein High ausgibt.
Steht auch soweit ich weiß im Datenblatt, die Pins soll man einfach frei lassen.

Gruß Rainer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 24.Apr 2008 22:35:09    Titel: Bauteile finden Antworten mit Zitat

pcprofi hat folgendes geschrieben:
du hast beim 4-Bit-Anschluss die DB0-DB3 auf GND gezogen. Dies sollte man besser nicht tun, weil das Display im Read-Mode u.U. dort ein High ausgibt.
Steht auch soweit ich weiß im Datenblatt, die Pins soll man einfach frei lassen.

Hallo Rainer!

Der Read-Modus wird nicht benutzt. Ich habe bei meinen Recherchen mehrmals die Empfehlung gelesen, diese Anschlüsse nach GND zu ziehen, wenn sie nicht genutzt werden. So kann man sicher sein, dass diese Datenleitungen LOW sind (was sie im 4-Bit-Modus auch unbedingt sein müssen) und nicht irgendwie gestört werden. Aber ich habe auch ziemlich viel Blödsinn lesen müssen -- was wiederum eine andere Geschichte ist.

lg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.


Zuletzt bearbeitet von gerold am Fr 25.Jul 2008 21:25:35, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: Do 24.Apr 2008 23:04:35    Titel: Bauteile finden Antworten mit Zitat

Okay, ich hab grad auf Anhieb im HD44780 Datenblatt auch nichts dazu gefunden - aber wie gesagt, ich hab auch schon mehrfach gelesen, dass die Pins einfach "floaten" gelassen werden sollen - Habe ich bisher auch immer gemacht und nie Probleme gehabt.

Man sollte es aber trotzdem vll im Hinterkopf behalten, evt macht man ja mal Projekte, für die man auch den Read-Mode braucht - und dann darf man sie SICHER nciht gegen GND ziehen.

Gruß Rainer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bauteiltöter



Anmeldungsdatum: 10.03.2008
Beiträge: 172

BeitragVerfasst am: Fr 25.Apr 2008 07:00:05    Titel: Bauteile finden Antworten mit Zitat

hi,
schön das ers hier weitergeht.
Ich hätte da noch ne Frage: Kan man mit Bascom auch 2 LCDs ansteuern?

MfG Bauteiltöter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Fr 25.Apr 2008 07:57:19    Titel: Bauteile finden Antworten mit Zitat

Bauteiltöter hat folgendes geschrieben:
Kan man mit Bascom auch 2 LCDs ansteuern?

Hallo Bauteiltöter!

Damit habe ich noch keine Erfahrung sammeln können.

Die Zusatzbibliothek "lcd4e2.lib" http://avrhelp.mcselec.com/index.html?lcd4e2.htm kann zwei LCD-Controller durch Umschalten zwischen zwei E-Leitungen ansprechen. Diese Bibliothek ist eigentlich dafür gedacht, große LCDs anzusprechen, welche mehr als 80 Zeichen darstellen können. Aber ich denke, dass man damit auch schlicht ein zweites Display ansprechen kann.

Siehe: http://www.roboternetz.de/wissen/index.php/Bascom_und_LCD%27s#Sonderfall:_LCDs_mit_mehr_als_80_Zeichen

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Bauteiltöter



Anmeldungsdatum: 10.03.2008
Beiträge: 172

BeitragVerfasst am: Fr 25.Apr 2008 14:26:55    Titel: Bauteile finden Antworten mit Zitat

Ok, danke, werde ich mir angucken

MfG Bauteiltöter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
RuSsFiGhTeR



Anmeldungsdatum: 22.01.2008
Beiträge: 157

BeitragVerfasst am: Do 08.Mai 2008 03:31:07    Titel: Bauteile finden Antworten mit Zitat

Ich hätte noch ne Frage !
Habe mir Vorgestern endlich Atmel Evolutions Board und Atmega8 bestellt bei Pollin.de und wenn ich richtig verstanden habe brauch ich zu programieren Bascom aber damit kann ich net direkt zum Kontroller die Hex und Bin datei übertragen oder?
Habe com anschlüße am pc Very Happy nur so zu info
Also brauch ich PonyProg2000 ja ?
Welche Version muss ich mir dann runterladen da gibt es verschiedene !
von 1.17 bis 2.07 Beta welche soll ich mir nehmen ?
und muss ich was in Optionen bei Bascom einstellen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: Do 08.Mai 2008 09:40:57    Titel: Bauteile finden Antworten mit Zitat

ponyprog-Version nimmst ud einfach die neueste, die läuft bei mir auch einwandfrei.

In BASCOM einstellen musst du eigentlich nicht viel. Wichtig ist, dass ud den Compiler so einstellst, dass er dir ein HEX-File mit ausgibt - weil das schreibst du mit Ponyprog in dem µC.
Ansonsten musst du das übliche halt beachten, z.B. dass die $crystal Angabe mit der tatsächlich in den Fusebits sowie evt. mit dem Quarz angegebenen Taktung übereinstimmt - sonst stimmt z.B. das Timing bei zeitkritischen Anwendungen nicht (z.B. Displayinitialisierung).

Mehr könnt ich dazu nicht sagen - gerold ist der Profi hier...

Probier erstmal die Testprogramme aus, die Gerold hier so geschrieben hat - da wird einem schon ne Menge bei klar...

Gruß Rainer



[edit]

Ich hab aber auch noch mal eine Frage: Hat einer schon mal mit dem DOGM-Displays gearbeitet? Mich würde das interessieren wegen der SPI-Ansteuerung, man kommt mit weniger Strippen einfach weiter...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
RuSsFiGhTeR



Anmeldungsdatum: 22.01.2008
Beiträge: 157

BeitragVerfasst am: Do 08.Mai 2008 14:20:47    Titel: Bauteile finden Antworten mit Zitat

Ok danke werd ich dann ausprobieren die Teile sind leider noch net da Sad
Hätte noch ne frage zu programmierung

$regfile = "M8def.dat" atmega 8 !
$crystal = 1000000 wöfür sind die 1Mhz
$hwstack = 32
$swstack = 10
$framesize = 40
Config pinB.1
PortB.1 = 1
Wait 1
PortB.1 = 0
Wait 1
PortB.1 = 1
Wait 2
Port.B.1 = 0
Wait 1
Loop
End

Funktioniert des so ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: Do 08.Mai 2008 14:33:31    Titel: Bauteile finden Antworten mit Zitat

Das funktioniert so nicht. Das geht gar nicht erst durch den Compiler, da fehlt nämlcih was...

Aber fangen wir mal anders an... Was hast du überhaupt mit dme Programmtext vor?
Wenn du was größeres vor hast, dann fang mal einen neuen Thread dafür an, sonst geht hier alles unter, es ist eh schon schwierig, wenn man speziellw as sucht.



RuSsFiGhTeR hat folgendes geschrieben:

$regfile = "M8def.dat" atmega 8 !
$crystal = 1000000 wöfür sind die 1Mhz
$hwstack = 32
$swstack = 10
$framesize = 40
Config pinB.1
PortB.1 = 1
Wait 1
PortB.1 = 0
Wait 1
PortB.1 = 1
Wait 2
Port.B.1 = 0
Wait 1
Loop
End

Funktioniert des so ?


Nein.

Es fehlt mindestens das "Do" von dem Loop sofern das ganze denn in einer Endlosschleife passieren soll.


Code:

$regfile = "M8def.dat"       'atmega 8-Definitionsdatei
$crystal = 1000000           'Gibt die Rechengeschwindigkeit an, muss mit Quarz oder Fusebits übereinstimmen!
$hwstack = 32
$swstack = 10
$framesize = 40


Config PORTB.1 = Output  'als Output definieren - sonst tut sich da nix

Do                         'Beginn der Hauptroutine (Endlosschleife)


PortB.1 = 1            ' PB1 auf High setzen
Wait 1                   ' 1 Sek warten
PortB.1 = 0            ' PB1 auf Low setzen
Wait 1                   ' 1 Sek warten
PortB.1 = 1            ' PB1 auf High
Wait 2                   ' 2 Sek warten
Port.B.1 = 0           ' PB1 auf Low
Wait 1                   ' 1 Sek warten


Loop                     ' Ende der Hauptroutine, Endlosschleife


End                      ' Programmende, dahinter evt. noch Subroutines, ISR etc...



Der korrigierte Text (ungetestet) sollte funktionieren - wenn ich mich richtig erinner sind die Fusebits von Werk aus auf 1 MHz internen RC-Oszillator gesetzt.

Übrigens die BASCOM-AVR-Onlinehilfe ist da auhc ganz gut, vor allem in der Befehlsreferenz.

Gruß Rainer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
RuSsFiGhTeR



Anmeldungsdatum: 22.01.2008
Beiträge: 157

BeitragVerfasst am: Do 08.Mai 2008 14:35:48    Titel: Bauteile finden Antworten mit Zitat

Ich dachte so das dabei Led ein mal aufleuchten für 1 sek soll und wieder ausgehen dann wieder aufleuchten für 2 sek und wieder ausgehen und dann das wieder von anfang an !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: Do 08.Mai 2008 14:38:39    Titel: Bauteile finden Antworten mit Zitat

Das sollte mit der korrigierten Version möglich sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
smilydog



Anmeldungsdatum: 15.08.2007
Beiträge: 54

BeitragVerfasst am: Do 08.Mai 2008 23:37:11    Titel: Bauteile finden Antworten mit Zitat

gerold hat folgendes geschrieben:
pcprofi hat folgendes geschrieben:
du hast beim 4-Bit-Anschluss die DB0-DB3 auf GND gezogen. Dies sollte man besser nicht tun, weil das Display im Read-Mode u.U. dort ein High ausgibt.
Steht auch soweit ich weiß im Datenblatt, die Pins soll man einfach frei lassen.

Hallo Rainer!

Der Read-Modus wird nicht benutzt. Ich habe bei meinen Recherchen mehrmals die Empfehlung gelesen, diese Anschlüsse nach GND zu ziehen, wenn sie nicht genutzt werden. So kann man sicher sein, dass diese Datenleitungen LOW sind (was sie im 4-Bit-Modus auch unbedingt sein müssen) und nicht irgendwie gestört werden. Aber ich habe auch ziemlich viel Blödsinn lesen müssen -- was wiederum eine andere Geschichte ist.

lg
Gerold
Smile


Was generelles zu Datenleitungen. Wenn man digitale Eingänge, die auch als Ausgänge verwendet werden können, auf ein festes Potenzial legen möchte, verwendet man so genannte "pull-up" od. "pull-down" Widerstände. Werte im Kiloohm Bereich sind hier ein guter Wert. "Hart" auf ein Potenzial legen ist immer die schlechtere Wahl.

Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anzeige






Verfasst am: Heute 01:20:38    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Microcontroller und DSP Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3 ... 8, 9, 10 ... 18, 19, 20  Weiter
Seite 9 von 20

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1220223
©opyright by Markus Vohburger 2005 All Rights reserved