Forum: Mikrocontroller und Digitale Elektronik Atmega8 nutzung von PORT-D7


von Matthias (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine kleine Platine mit einem Atmega8, daran ist z.b. ein 
LCD-Display welches D7 als Enable benutzt.

Nun scheine ich den D7 nicht ansprechen/verändern zu können, erbleibt 
immer auf GND.

Mein Programm ist recht einfach:
1
int main(void)
2
{
3
    DDRD = 0xFE;   
4
    while(1)
5
    {
6
      PORTD &= 0x7f;   //E = 0,        -->Clr-Enable
7
      PORTD |= 0x80;   //E = 1        -->SetEnable
8
    }
9
}

Jedoch verändert der Zustand des Pins sich niemals.

Die Fuses des Atmega sind auf:
HIGH = 0xD9
LOW  = 0xE1
gesetzt.
Ich sehe nicht dass hier etwas geändetr werden müsste.

Ein kurzschluss des Pins auf GND liegt nicht vor.

Habt ihr vielleicht eine Idee, warum er nicht gesetzt werden kann?

Grüße und vielen Dank,
Matthias

von Stefan F. (Gast)


Lesenswert?

Matthias schrieb:
> Jedoch verändert der Zustand des Pins sich niemals.

Wie hast du das gemessen?

Hast du den Schaltplan und die Platine kontrolliert? Ist der Punkt, wo 
du gemessen hast, wirklich mit dem Port D7 verbunden?

Hast du das gleiche Problem mit weiteren Pins?

von Uwe K. (ukhl)


Lesenswert?

Baue doch mal ein DELAY vor den beiden PIN-Wechseln ein. In deinem 
Beispiel wechselt der PIN extrem schnell.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Wollte schon fragen... Wieviele Mhz kann das Display? xD

von Matthias (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wie hast du das gemessen?
Mit dem Oszi, der Tastkopf funktioniert auch, hab ich grade getestet.

> Hast du den Schaltplan und die Platine kontrolliert? Ist der Punkt, wo
> du gemessen hast, wirklich mit dem Port D7 verbunden?
Gemessen habe ich inzwischen auch schon am D7

> Hast du das gleiche Problem mit weiteren Pins?
Mit allen anderen... habe ich grade festgestellt!

-->;) :) ;)

-->Es lag am für das Projekt eingestellten Controller, ich Flashte zwar 
einen Atmega8, Compilierte jedoch noch für einen Atmega88 aus der auf 
dem Vorgänger-Projekt drauf ist.

Offensichtlich läuft der 8er schlicht nichtmal was die Pins angeht mit 
dem 88er Code.

-->Nun toggelt er wie erwartet ;)
Vielen Dank euch beiden ;)

von spess53 (Gast)


Lesenswert?

Hi

>Offensichtlich läuft der 8er schlicht nichtmal was die Pins angeht mit
>dem 88er Code.

Such mal nach

AVR094: Replacing ATmega8 by ATmega88

Dann weißt du warum.

MfG Spess

von Stefan F. (Gast)


Lesenswert?

Matthias schrieb:
> Offensichtlich läuft der 8er schlicht nichtmal was die Pins angeht mit
> dem 88er Code.

Das hatten wir doch erst vor kurzem. Warst du derjenige?

Ich hatte auf die Application Note verwiesen, die gleich am Anfang 
hervor hebt, dass zahlreiche Registers andere Adressen haben.

von Matthias (Gast)


Lesenswert?

spess53 schrieb:
> AVR094: Replacing ATmega8 by ATmega88

Hab danach gesucht, ganz schön dass es so ein Explizit darauf 
hinweisendes Datenblatt gibt :)

Stefan ⛄ F. schrieb:
> Das hatten wir doch erst vor kurzem. Warst du derjenige?

Nein, den fehler hatte ich glaub noch nie gemacht...

Grüße, Matthias

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.