XMega DIR PORT

Gast #2399273
Lesenswert?

Hallo,

ich bitte um Hilfe bei folgendem Programmcode:

(Hardware: XPlain Board, MKII Programmer, AVR 5.0)

funktionierende Programm Version (LEDs blinken):


int main (void)
{
  board_init();
  init_peripherie();
  PORTE.DIR = 0xFF; // Port E als Ausgang definieren

  while(1)
  {
    PORTE.DIR = 0xFF; // Port E als Ausgang definieren
    PORTE.OUT = ~out; //Variable am Ausgang vom Port invertiert ausgeben
  }
  // Insert application code here, after the board has been initialized.
   return 0;

}

/* Timer TCC0 Interrupt routine */
ISR(TCC0_OVF_vect)
  {
        out++; // hier kann stehen was der Timer bei jedem Interrupt tun 
soll
  }


NICHT Funktionierende Version (unterschied in der While schleife), LEDs 
leuchten nicht, obwohl PORTDIR richtig gesetzt und im IO Register 
richtig angezeigt wird (0xFF):


int main (void)
{
  board_init();
  init_peripherie();
  PORTE.DIR = 0xFF; // Port E als Ausgang definieren

  while(1)
  {
    //PORTE.DIR = 0xFF; // Port E als Ausgang definieren
    PORTE.OUT = ~out; //Variable am Ausgang vom Port invertiert ausgeben
  }
  // Insert application code here, after the board has been initialized.
   return 0;

}

/* Timer TCC0 Interrupt routine */
ISR(TCC0_OVF_vect)
  {
        out++; // hier kann stehen was der Timer bei jedem Interrupt tun 
soll
  }

wieso muss der DIR von Port E in der While schleife immer wieder gesetzt 
werden? Das Programm springt nur zwischen While schleife und interrupt.

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