Steuerung von EA DOGM163 mit einem ATMega32

OP #1907943
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:
1
#define LCD_CONTROLLER_KS0073 0  /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
2

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

5
#define LCD_PORT         PORTC        /**< port for the LCD lines   */
6
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
7
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
8
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
9
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
10
#define LCD_DATA0_PIN    7            /**< pin for 4bit data bit 0  */
11
#define LCD_DATA1_PIN    6            /**< pin for 4bit data bit 1  */
12
#define LCD_DATA2_PIN    5            /**< pin for 4bit data bit 2  */
13
#define LCD_DATA3_PIN    4            /**< pin for 4bit data bit 3  */
14
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
15
#define LCD_RS_PIN       0            /**< pin  for RS line         */
16
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
17
#define LCD_RW_PIN       2            /**< pin  for RW line         */
18
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
19
#define LCD_E_PIN        3            /**< pin  for Enable line     */

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

5
  lcd_init(LCD_DISP_ON);
6
  lcd_clrscr();
7
  lcd_puts("LCD Test Line");
8

9
  while(1)
10
  {
11
    PORTC |= 2;
12
    delayMS(1000);
13
    PORTC &= ~2;
14
    delayMS(1000);
15
  }
16
  return(0);
17
}

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
Angehängte Dateien:
#1907962
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?
Gast #1907998
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
OP #1908121
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:
1
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
2
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
3
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
4
#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
OP #1908127
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
OP #1908159
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren