|
Gegenseitige Verriegelung / Quiz-Schaltung
Die Schaltung mit dem Namen "Gegenseitige Verriegelung" findet man
auch manchmal unter dem Namen "Quiz-Schaltung".
Stell Dir folgende Situation vor: Drei Kandidaten und ein
Quizmaster. Jeder Kandidat hat einen Knopf und eine Lampe vor
sich. Der Quizmaster stellt eine Frage. Der Kandidat, der am
schnellsten auf seinen Knopf drückt, dessen Lampe geht an. Die
anderen Kandidaten können ihre Lampe nun nicht mehr einschalten.
Erst der Quizmaster kann alles wieder auf Anfang zurücksetzen.
Hier die Schaltung:
Du kannst unser Experimentierboard benutzen.
Schau Dir den Code an:
#include <avr/io.h>
#include "boarddefs.h"
int main(void)
{
int x=0;
DDRB = 255; DDRD = 255; //PORTB
und PORTD sind Ausgaenge
PORTB = 255; PORTD = 255; //Alle LEDs aus
DDRC = 0; //PORTC -> Eingaenge
PORTC = 255; // alle Pull-Up-Widerstaende
von PORTC einschalten
while(1){
if (
(bit_is_clear(PINC,0)) && (x==0) ) {led1on; x=1;}
//Kandidat 1
if (
(bit_is_clear(PINC,1)) && (x==0) ) {led2on; x=1;}
//Kandidat 2
if (
(bit_is_clear(PINC,2)) && (x==0) ) {led3on; x=1;}
//Kandidat 3
if
(bit_is_clear(PINC,5)) {x=0; led1off; led2off; led3off; }
//Master
}
return(0);
}
Hier
gibt es den Code-Ordner zum Programmieren des Atmega8.
Anmerkungen:
- Bau die Schaltung und das Programm doch mal für 4 oder 5
Kandidaten um!
|