Forum: Mikrocontroller und Digitale Elektronik komischer Displaydefekt


von Janno S. (Gast)


Lesenswert?

Hallo zusammen,
ich versuche ein Display (2x27 Zeichen) an PortC meines Atmega 16
zu betreiben.
An PortA, PortB und PortD läuft es astrein, nur an Port C will es nicht 
klappen, obwohl ich alles genauso angeklemmt habe.
Ich verwende die LCD-Treiber von Fleury und muss ja lediglich in der 
display.h folgendes ändern:
#define LCD_PORT         PORTC        /**< port for the LCD lines   */

dabei wird durch PORTA Port A ausgewählt.....
A,B,D gehen, aber C nicht und Port C verwende ich auch sonst nirgends im 
Programm....
Hier der Code:

#include <avr/signal.h>
#include <avr/io.h>
#include <stdint.h>
#include <stdlib.h>
#include "lcd.h"
#include <util/delay.h>


disp_init()
{
  lcd_init(LCD_DISP_ON);
  lcd_clrscr();
  lcd_gotoxy(0,1);
  lcd_puts("Ready");

  lcd_gotoxy(0,0);
}

void main(void)
{
  disp_init();

  while(1)
  {
    lcd_gotoxy(0,1);
    lcd_puts("- Joju Test -");
  }
}

von jack (Gast)


Lesenswert?

Ist die JTAGEN Fuse programmiert?

von Janno S. (Gast)


Lesenswert?

Hi,

also bei JTAGEN ist ein Häckchen...
wofür ist diese Fuse denn, kann ich die bedenkenlos setzen/nicht setzen 
??

von Hannes L. (hannes)


Lesenswert?

Janno S. wrote:
> Hi,
>
> also bei JTAGEN ist ein Häckchen...
> wofür ist diese Fuse denn, kann ich die bedenkenlos setzen/nicht setzen
> ??

Das sollte im Datenblatt beschrieben sein!

Lesen bildet...

...

von jack (Gast)


Lesenswert?

Warum liest denn bloß keiner das Datenblatt?
Wenn das Häkchen gesetzt ist, d.h. die Fuse programmiert ist, wird
die JTAG Schnittstelle aktiviert. Der Port ist dann nicht in voller 
Breite
nutzbar.

von Hannes L. (hannes)


Lesenswert?

jack wrote:
> Warum liest denn bloß keiner das Datenblatt?

Weil die Erfahrung lehrt, dass sich immer wieder Jemand findet, das das 
übernimmt und als mundgerechten Happen serviert... ;-)

> Wenn das Häkchen gesetzt ist, d.h. die Fuse programmiert ist, wird
> die JTAG Schnittstelle aktiviert. Der Port ist dann nicht in voller
> Breite
> nutzbar.

Petze...

Duck&wech... ;-)

...

von jack (Gast)


Lesenswert?

@Hannes

>Weil die Erfahrung lehrt, dass sich immer wieder Jemand findet...

Ich weiß, ich habs sogar selber mal geschrieben. Ich glaub ich bin zu
müde ;-)

von Janno S. (Gast)


Lesenswert?

Nein nein nein,
nicht weil sich schon jemand findet, sondern weil ihr die profis hier 
seid. Wenn ich hätte selber danach suchen müssen, dann hätt das 
warscheinlich ne halbe ewigkeit gedauert, bis ich den fehler gefunden 
hätte. Ich wär ja niemals auf die Idee gekommen, den Fehler bei den 
Fuses zu suchen, geschweige denn im DB unter Portspezifikationen....
Ihr wusstet direkt, wo der Fehler zu suchen war !!


Aber habt vielen Dank, denn nun funktioniert es endlich !

Superspitzenklasse ;)

von Hannes L. (hannes)


Lesenswert?

jack wrote:
> @Hannes
>
>>Weil die Erfahrung lehrt, dass sich immer wieder Jemand findet...
>
> Ich weiß, ich habs sogar selber mal geschrieben. Ich glaub ich bin zu
> müde ;-)

Sieh' es einfach als Scherz... (so war es auch gemeint)

Zurück zum Thema:

@Janno:

Falls Du Angst vor den Fuses hast (oder noch keine Ahnung) und 
(verständlicherweise) nicht unnötig daran herumspielen willst, man kann 
JTAG auch im Programmcode deaktivieren. Dazu muss man das Bit JTD in 
einem Steuerregister (dessen Name mir gerade entfallen ist) setzen. Da 
ist allerdings ein kleiner Trick dabei, der (wie könnte es anders sein) 
im Datenblatt genauestens beschrieben ist.

So, nun bin ich auch 'ne Petze...

...

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.