|
Gegenseitige Auslösung
Stell Dir doch mal ein Autoradio vor. So eins mit Senderspeichern.
Wenn Du auf den ersten Senderspeicherknopf drückst, kommt Dein
Lieblingsmusiksender. Und wenn Du auf den zweiten Senderspeicherknopf
drückst, kommt Dein Lieblings-Nachrichtensender, wobei der Musiksender
natürlich aus geht. Wenn Du auf den dritten Senderspeicherknopf usw.
Wir machen's mal mit LEDs. Wenn Du einen der drei Taster S0..S2
betätigst, geht die dazugehörige LED an.
Drückst Du dann einen anderen
Taster, geht "seine" LED an und die vorherige aus. Und so weiter.
Hier die Schaltung:

Du kannst unser Experimentierboard benutzen.
Schau Dir den Code an:
#include <avr/io.h>
#include "boarddefs.h"
int main(void)
{
DDRB = 255; DDRD = 255; //Ausgaenge definieren
PORTB = 255; PORTD = 255;//alle LEDs aus
DDRC = 0; PORTC = 255; //Eingaenge definieren und
Pull Up Widerstaende einschalten
while(1){
if (bit_is_clear(PINC,0))
{led1on; led2off; led3off;} //Kanal 1
if (bit_is_clear(PINC,1))
{led1off; led2on; led3off;} //Kanal 2
if (bit_is_clear(PINC,2))
{led1off; led2off; led3on;} //Kanal 3
}
return(0);
}
Hier gibt
es den
Code-Ordner zum
Programmieren des Atmega8.
Anmerkungen:
- Wenn diese Schaltung mit genau zwei Kanälen arbeitet, nennt man
sie "Flip Flop".
- Bau die Schaltung und das Programm doch mal für 4,5 oder 6
Kanäle um!
|