mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Steuerung von EA DOGM163 mit einem ATMega32


Autor: Luca Bertoncello (lucabert)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Leute!

Ich habe endlich die Platine fertig gelötet, und bin dabei ein paar 
Tests zu machen.

Erstmal wollte ich einige Zeichen auf dem Display schreiben.

So wie ich verstanden habe, kann ich die Library von Fleury nutzen, um 
einen EA DOGM163 zu steuern.

Der Schaltplan ist als Anhang.
Ich habe folgende Konfiguration in meinem lcd.h:
#define LCD_CONTROLLER_KS0073 0  /**< Use 0 for HD44780 controller, 1 for KS0073 controller */

#define LCD_LINES           3     /**< number of visible lines of the display */

#define LCD_PORT         PORTC        /**< port for the LCD lines   */
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN    7            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    6            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    5            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    4            /**< pin for 4bit data bit 3  */
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
#define LCD_RS_PIN       0            /**< pin  for RS line         */
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
#define LCD_RW_PIN       2            /**< pin  for RW line         */
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
#define LCD_E_PIN        3            /**< pin  for Enable line     */

Und mein main.c ist wie folgendes:
int main(void)
{
  DDRC |= (1<<1);

  lcd_init(LCD_DISP_ON);
  lcd_clrscr();
  lcd_puts("LCD Test Line");

  while(1)
  {
    PORTC |= 2;
    delayMS(1000);
    PORTC &= ~2;
    delayMS(1000);
  }
  return(0);
}

Was ich mich erwartet habe war, daß ich "LCD Test Line" schreibe, und 
dann der Display in Sekundentakt ein- und ausschalte.

Leider passiert nur daß der Display blinkt (in Sekundentakt, also die 
Schleife), aber nichts wird geschrieben...

Ist es was in den Code falsch, oder soll ich annehmen, daß meine 
Schaltung ein Problem hat?

Besten Dank!
Luca Bertoncello

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luca Bertoncello schrieb:

> #define LCD_DATA0_PIN    7            /**< pin for 4bit data bit 0  */
> #define LCD_DATA1_PIN    6            /**< pin for 4bit data bit 1  */
> #define LCD_DATA2_PIN    5            /**< pin for 4bit data bit 2  */
> #define LCD_DATA3_PIN    4            /**< pin for 4bit data bit 3  */

Schau nochmal genau in deinen Schaltplan, wie du die Datenpins 
angeschlossen hast. Wenn dein Schaltplan stimmt, dann nicht so wie du es 
hier beschrieben hast.


PORTC   ... die JTAGEN Fuse hast du schon abgeschaltet?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>So wie ich verstanden habe, kann ich die Library von Fleury nutzen, um
>einen EA DOGM163 zu steuern.

Bist du sicher? DOG-Displays haben z.B. in der Init zusätzliche Befehle, 
die HD44780-Kompatible nicht haben.

MfG Spess

Autor: Luca Bertoncello (lucabert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Luca Bertoncello schrieb:
>
>> #define LCD_DATA0_PIN    7            /**< pin for 4bit data bit 0  */
>> #define LCD_DATA1_PIN    6            /**< pin for 4bit data bit 1  */
>> #define LCD_DATA2_PIN    5            /**< pin for 4bit data bit 2  */
>> #define LCD_DATA3_PIN    4            /**< pin for 4bit data bit 3  */
>
> Schau nochmal genau in deinen Schaltplan, wie du die Datenpins
> angeschlossen hast. Wenn dein Schaltplan stimmt, dann nicht so wie du es
> hier beschrieben hast.

Meinst du, sie sind umgekehrt?
Also:
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */

Auch probiert. Gleiches Ergebnis... :(

> PORTC   ... die JTAGEN Fuse hast du schon abgeschaltet?

Ja!

Andere Ideen?

Danke
Luca Bertoncello

Autor: Luca Bertoncello (lucabert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
>>So wie ich verstanden habe, kann ich die Library von Fleury nutzen, um
>>einen EA DOGM163 zu steuern.
>
> Bist du sicher? DOG-Displays haben z.B. in der Init zusätzliche Befehle,
> die HD44780-Kompatible nicht haben.

Ich bin nur sicher, daß ich existiere... Und manchmal habe ich auch 
davon Zweifeln... :D

Mir ist nur gesagt worden, daß sie kompatibel sind. Kennst du dann eine 
Library um die DOG zu nutzen?

Danke
Luca Bertoncello

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
falls du hardware SPI benutzt zur steuerung kann ich dir ne lib geben 
die ich für den at90can128 /atmega128 entwickelt habe

Autor: Luca Bertoncello (lucabert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andi D. schrieb:
> falls du hardware SPI benutzt zur steuerung kann ich dir ne lib geben
> die ich für den at90can128 /atmega128 entwickelt habe

Nein, ich kann SPI nicht nutzen...
Ich nutze schon einige Tricks um SPI für die SD-Karte **UND** den 
MP3-Decoder...
Drei Geräte mit SPI geht wirklich nicht...

Danke trotzdem
Luca Bertoncello

Autor: Luca Bertoncello (lucabert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
>>So wie ich verstanden habe, kann ich die Library von Fleury nutzen, um
>>einen EA DOGM163 zu steuern.
>
> Bist du sicher? DOG-Displays haben z.B. in der Init zusätzliche Befehle,
> die HD44780-Kompatible nicht haben.

OK, Leute!

Vielleicht habe ich den Trick gefunden!
Ich habe dieses Code gefunden:

  http://www.mikrocontroller.net/attachment/80367/test16x3.c

und funktioniert (mit einigen Anpassungen wegen anderen Ports).

Nun werde ich meine eigene Library schreiben, um alles zu verwalten.

Wenn ich schaffe, werde ich dann als GPL2 veröffentlichen, falls jemand 
anderen es braucht... :D

Grüße
Luca Bertoncello

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luca Bertoncello schrieb:
> Wenn ich schaffe, werde ich dann als GPL2 veröffentlichen, falls jemand
> anderen es braucht... :D

bitte BSD oder MIT etc... kein gpl müll ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.