mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe für Anfänger


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen an alle,


hab nen kleines Problem mit meinem Display(KS0073).
Ich versuche es vergeblich, seit zwei Tagen, anzusteuern.
Alles was ich bisher erreicht habe... ein beleuchteter Bildschirm und 
nur dunkle Zeilen...


Ich verwende zum Ansteuern die Dateien "lcd.h" und "lcd.c" von 
http://jump.to/fleury (Peter Fleury)

da ich noch im erlernen bin, nutze ich den ATmega32 auf einem 
Board(RN-Control v1.4) des Roboternetzwerks.


meine Einstellungen sehen wie folgt aus:
1.in der "lcd.h"

#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    0            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    1            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    2            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    3            /**< pin for 4bit data bit 3  */
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
#define LCD_RS_PIN       4            /**< pin  for RS line         */
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
#define LCD_RW_PIN       5            /**< pin  for RW line         */
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
#define LCD_E_PIN        6            /**< pin  for Enable line     */


2.in der "lcd.c"

#define KS0073_EXTENDED_FUNCTION_REGISTER_ON  0x24
/* |0|010|0100 4-bit mode extension-bit RE = 1 */

#define KS0073_EXTENDED_FUNCTION_REGISTER_OFF 0x20
/* |0|010|0000 4-bit mode, extension-bit RE = 0 */

#define KS0073_4LINES_MODE                    0x09
/* |0|000|1001 4 lines mode */


würde mich freuen, wenn jemand auf anhieb nen tip parat hätte.

mfg Frank

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke der Fehler wird nicht in den beiden Files zu finden sein 
(ausser Du hast sie verändert). Wie werden sie denn in Deinem Programm 
aufgerufen?

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include "lcd.h"
die lcd.c wird einfach den Source Files angehängt.

ich arbeite übrigens mit AVR Studio!

gruß Frank

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

Bewertung
0 lesenswert
nicht lesenswert
Frank wrote:

> da ich noch im erlernen bin, nutze ich den ATmega32 auf einem
> Board(RN-Control v1.4) des Roboternetzwerks.
...
> #define LCD_PORT         PORTC        /**< port for the LCD lines   */
...

Da drängt sich sofort die Frage auf:
Hast du das JTAG Interface abgeschaltet?

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab sie übrigens verändert... zwangsläufig:

#define XTAL 16000000
/**< clock frequency in Hz, used to calculate delay timer */


/**
 * @name  Definition for LCD controller type
 * Use 0 for HD44780 controller, change to 1 for displays with KS0073 
controller.
 */
#define LCD_CONTROLLER_KS0073 1
/**< Use 0 for HD44780 controller, 1 for KS0073 controller */

/**
 *  @name  Definitions for Display Size
 *  Change these definitions to adapt setting to your display
 */
#define LCD_LINES           4
/**< number of visible lines of the display */
#define LCD_DISP_LENGTH    20
/**< visibles characters per line of the display */
#define LCD_LINE_LENGTH  0x40
/**< internal line length of the display    */
#define LCD_START_LINE1  0x00
/**< DDRAM address of first char of line 1 */
#define LCD_START_LINE2  0x20
/**< DDRAM address of first char of line 2 */
#define LCD_START_LINE3  0x40
/**< DDRAM address of first char of line 3 */
#define LCD_START_LINE4  0x60
/**< DDRAM address of first char of line 4 */

gruß Frank

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG interface abschalten?


ich bin super neu auf dem gebiet, gib mir kurz zeit das durchzulesen :-)


Frank

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

Bewertung
0 lesenswert
nicht lesenswert
Frank wrote:
> JTAG interface abschalten?
>
>
> ich bin super neu auf dem gebiet, gib mir kurz zeit das durchzulesen :-)
>

Auf der verlinkten Page findest du keine Erklärung zu
deinem Problem.

JTAG ist bei einem Mega32 per Default eingeschaltet und belegt
ein paar Pins am PORTC. Die funktionieren dadurch nicht als
'normale' I/O Ports. Da dein LCD an eben diesem Port hängt
kann daher die Fleury Lib die Pins nicht richtig ansteuern.

Lösung
* entweder JTAG per Fuse abschalten
* oder JTAG per Software abschalten
* oder das LCD an einem anderen Port betreiben

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es soetwas im AVR Studio?
Ich finde nur JTAGICE upgrade...

Autor: Patrick (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>Gibt es soetwas im AVR Studio?
Ja. Siehe Anhang: Fuse "JTAG Interface Enabled"

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kanns beim besten willen nicht finden... :-(

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

Bewertung
0 lesenswert
nicht lesenswert
In dem Dialog, in dem du den Chip programmierst, müsste es einen
Reiter "Fuses" geben. Dort kannst du die JTAG Fuse umstellen.

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG per Software abschalten geht so:
 unsigned char tmp;
tmp = MCSUCSR;
tmp |= (1<<JTD);
MCUCSR = tmp;
MCUCSR = tmp; /*MUSS 2x geschrieben werden!!*/
/* oder, falls das nicht klappt (das schreiben muss innerhalb von 4 Takten passieren): */
asm volatile ("in r24, %[mcucsr]\n\t"
    "ori r24, %[jtd]\n\t"
    "out %[mcucsr], r24\n\t"
    "out %[mcucsr], r24\n\t"
    :
    :[jtd] "M" (1<<JTD), [mcucsr] "I" (_SFR_IO_ADDR(MCUCSR))
    :"r24");
//musst du nur kopieren, nmicht kapieren ;)

hth. Jörg
ps.: Beides sollte als eines der ersten Sachen in "main()" passieren..

Autor: Frank (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So einen Dialog gibts nich...

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

Bewertung
0 lesenswert
nicht lesenswert
Frank wrote:
> So einen Dialog gibts nich...


Wie überträgst du dann das fertige Programm in den Prozessor?

Autor: Patrick (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Oben auf der Symbolleiste findes Du diese Icons. Das mit "AVR" drauf ist 
das richtige.

Autor: Thomas W. (thomasw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da du anscheinend mit PonyProg arbeitest, schau dir das hier mal an:
AVR Fuses

Autor: Frank (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
PonyProg2000...

da gibts ja folgende Einstellungsmöglichkeit...aber scheint das ja nicht 
"an" zu sein...

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay bei PonyProg heißt KEIN Haken = An.
Habs gesetzt und geschrieben, Die Bildpunkte des Displays bleiben 
trotzdem alle Schwarz(dunkel, blau, wie auch immer)!

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

Bewertung
0 lesenswert
nicht lesenswert
Frank wrote:

> Habs gesetzt und geschrieben, Die Bildpunkte des Displays bleiben
> trotzdem alle Schwarz(dunkel, blau, wie auch immer)!

Wie 'alle'?
Sind wirklich alle Pixel deines Displays dunkel?
Dann stimmt der Kontrast nicht.
Normal ist bei einem uninitialisiertem Display, dass die erste
Textzeile dunkel ist.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jup alle :-(

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay ich glaub es war der Kontrast :-DDDDD ich könnt mich totlachen, wie 
peinlich...

jetzt hab ich aber immernoch das problem, das nichts angezeigt wird :-((



gruß das Sorgenkind ;-)

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.