/* 
   Autor: Xenia Rendtel
   Letzte Änderung: 16.08.2009
   Programm um mit LEDS binaer zu zählen */

#include <avr/io.h>
#include <util/delay.h>
#include "led.h"

// Dezimalzahl wird nach binaer umgewandelt und 
// schaltet die passenden LED's auf dem Board an
void dezimalnachbinaer(int zahl) {

  int bit;
  for (bit=0; bit<8; bit++) {
    if ((zahl & (1 << bit)) != 0) {
      LedAn(bit);
    }
    else {
      LedAus(bit);
    }
  }
}

int main ( void )
{

  int i = 0;
  int lauf = 1;

  LedInit ();
  	
  while (lauf) {
    // von 0 bis 127 zählen
    for (i=0;i<127;i++) {
      LedAn(7);	   
      _delay_ms(10);
      LedAus(7);	   
      dezimalnachbinaer(i);
      _delay_ms(500);
    } 
    // wieder rueckwärts zählen
    for (i=3;i>-1;i--) {
      LedAn(7);	   
      _delay_ms(10);
      LedAus(7);	   
      dezimalnachbinaer(i);
      _delay_ms(500);
    }
  }
  return 0;
}

