atmega128 reagiert nicht auf Eingänge

Gast #479019
Lesenswert?
• ▲
▼
Hallo,

ich versuche den atmega128 mit AVR-Studio4 zu programmieren und habe nun 
einige mini-testprogramme geschrieben:

z.B: Signal durchschalten

#include <avr/io.h>

int main(void)
{
   DDRB=0xFF;
   PORTB=0xFF;
   DDRE=0x00;
   PORTE=0xFF;

   while(1)
  {
    if(PORTE==0xFF)
    {
      PORTB=0xFF;
    }
    else
    {
      PORTB=0x00;
    }
  }



}

jedoch ändert sich der Ausgang nicht, ich habe zwar schon vermutet, dass 
der Eingangsport defekt ist, jedoch funktioniert es mit einem anderen 
Port auch nicht.

Ist in der Software irgend ein Fehler???
Gast #479045
Lesenswert?
• ▲
▼
>     Wie ziehst Du denn alle Pins von PORTE auf "1" ?

das problem ist, dass wenn ich den PORTE auf 0 ziehe, PORTB gar nicht 
erst reagiert, also zu dem fall bin ich noch nicht gekommen,



und es stimmt schon ich muss "if(PINE==0xFF)" schreiben, doch das habe 
ich auch schon versucht und es hat nicht funktioniert.
Gast #479108
Lesenswert?
• ▲
▼
@Michael H.

>>     Wie ziehst Du denn alle Pins von PORTE auf "1" ?

>das problem ist, dass wenn ich den PORTE auf 0 ziehe, PORTB gar nicht

Das sind aber 8 Pins, das ist dir hoffentlich klar?

>erst reagiert, also zu dem fall bin ich noch nicht gekommen,

In deiner Routine reagiert er nur, wenn du alle 8 Pins (=PORTE) auf 0 
ziehst, mittels Taster oder so. Denn du schaltest bei PORTE die internen 
Pull-ups ein.

>und es stimmt schon ich muss "if(PINE==0xFF)" schreiben, doch das habe
>ich auch schon versucht und es hat nicht funktioniert.

Schreib mal

if((PINE & 0x01) ==0x01)

dann regiert dein Prgramm nur auf EINEN PIN, nämlich PE0.

MfG
Falk

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