ITG-ABI 20/21 7.05.2021 Teil 1 Lösungsvorschlag Aufgabe 1 Lichteffekt-Bausatz

1.1 Schaltnetz und Schaltwerk (15P)

1.1.3 Schaltwerk ohne Ausgangsschaltnetz

Beachte Startzustand mit allen FF sind 0 siehe TI-Basis: Die Ampel

1.1.4 Schaltwerk ohne Ausgangsschaltnetz

Beachte: Weiteres FF notwendig wegen doppeltem Zustand mit LED in der Mitte

1.2 Mikrocontroller Teil (15P)

Verwendeter µC: ATMEL AVR 8 Bit RISC.

Zuordnungen zum µC ATmega16

Systemtakt 1MHz Zylkuszeit 1µs.

Kathoden Blau PB0 MC PA0  
Kathoden Grün PB1    
Kathoden Rot PB2    
       
TA PD2 (INT0) PC0 L1
500Hz PD3 (INT1) .. ..
    .. ..
    PC7 L8

1.2.1 Unterprogramm UP_INIT 3P

void UP_INIT(){
  MCUCR |= (1<<ISC01); // INT0 fallende Flanke
  MCUCR |= (1<<ISC11); // INT1 fallende Flanke
  GIMSK |= (1<<INT0);  // INT0 freigeschaltet (TA)
  // GIMSK |= (1<<INT1);  // INT1 freigeschaltet (500HZ) noch nicht!
  auswahl=1;           // Startwert
  sei();               // globale Interrupt-Freigabe

1.2.2 Hauptprogramm 3P

Hauptprogramm
Struktogramm

1.2.3 UP_LE1() 2P

Struktogramm

1.2.4.1 UP_LE2() 2P

volatile unsigned char zaehler = 0; // Interrupts zahelen
void UP_LE2(){
  GIMSK |= (1<<INT1);  // INT1 freigeschaltet (500HZ)
  while (zaehler<200); // 200 Interrupts abwarten
  GIMSK &= ~(1<<INT1); // INT1 deaktivieren
  PORTC=0;             // LEDs aus
}

1.2.4.2 ISR INT1 (500Hz) 3P

ISR (INT1_vect){
  PORTB = ~(1<<(zaehler%3)); // Farbauswahl
  PORTC = LEDs[zaehler%3];   // LED Auswahl
  zaehler++;
}

1.2.4.3 Wie entsteht Eindruck eines mehrfarbigen Leuchtbalkens? 2P

Jede 2ms wird eine andere Farbe eingeschaltet, der Zyklus wiederholt sich alle 6ms.

Durch die "Trägheit des Auges" können die kurz aufleuchtenden LED nicht unterschieden werden, sie wirken als ob sie dauernd leuchten.