AVR ATMEGA 8

Gast #1453076
Lesenswert?

Wir haben in der Schule mit AVR-Studio angefangen, das Projekt war eine 
LED am board zum leuchten zu bringen.

Ich habs geschrieben, jedoch werden die while Befehle übersprungen.

DANKE

Quellcode:

#include <avr/io.h>

int main(void)
{
  DDRC = 1;
  unsigned long i;


  for(;;)
  {



      PORTC = PORTC & 254;

      i=0;
    while(i<=1000)
    {
      i++;
    }


      PORTC = PORTC | 1;

      i=0;
    while(i<=5000)
    {
      i++;
    }


  } return 0;

}
Gast #1453750
Lesenswert?

Normalerweise schreibt man die Portzugriffe etwas übersichtlicher.
Statt DDRC = 1 nimmt man z.B. DDRC |= (1 << 0), d.h. Bit 0 wird ein 
Ausgang, ohne die anderen Bits in DDRC zu ändern.

Pins Ein/Ausschalten macht man auch eher nicht mit  PORTC = PORTC | 1 
und PORTC = PORTC & 254. Wenn ein Pin eingeschaltet werden soll: PORTC 
|= (1 << n), wobei n zwischen 0 und 7 liegt. Zum Ausschalten: PORTC &= 
~(1 << n).

Macht das ganze etwas übersichtlicher und man braucht nicht lang 
rumrechnen, wenn andere Pins des Ports unangetastet bleiben sollen.

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