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


von Luca B. (lucabert)


Angehängte Dateien:

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

von Karl H. (kbuchegg)


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?

von spess53 (Gast)


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

von Luca B. (lucabert)


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

von Luca B. (lucabert)


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

von TestX .. (xaos)


Lesenswert?

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

von Luca B. (lucabert)


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

von Luca B. (lucabert)


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

von TestX .. (xaos)


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 ;)

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.