kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu

3.3 Bitmasken für den Eingang

Wie kann man gleichzeitig mehrere Taster auf ihren Zustand hin überprüfen?

  • Bei dem Experimentierboard sind ein Taster an PB0 (Taster 0) und ein weiterer an PB1 (Taster 1) angeschlossen.
  • Will man sichergehen, dass eine bestimmte Aktion nur durchgeführt wird, wenn Taster0 gedrückt, jedoch Taster 1 nicht gedrückt ist, dann müssen sowohl Bit 0 als auch Bit 1 auf ihren Zustand hin überprüft werden.
  • Die folgende Tabelle zeigt, wie solche Überprüfungen aussehen können:
Beschreibung Umsetzung 1 Alternative Umsetzung 2 Alternative Umsetzung 3
Bedingung wahr, wenn PB0==0 und gleichzeitig PB1==0 akku = PINB;
if( (akku & 0b00000011) == 0 )
{ Befehle }
akku = PINB;
if( (akku & ( (1<<0) | (1<<1) )) == 0 )
{ Befehle }
akku = PINB;
if( (akku & ( (1<<PB0) | (1<<PB1) )) == 0 )
{ Befehle }
Bedingung wahr, wenn PB0==1 und gleichzeitig PB1==0 akku = PINB;
if( (akku & 0b00000011) == 1 ){ Befehle }
akku = PINB;
if( (akku & ( (1<<0) | (1<<1) )) == (1<<0) )
{ Befehle }
akku = PINB;
if( (akku & ( (1<<PB0) | (1<<PB1) )) == (1<<PB0) )
{ Befehle }
Bedingung wahr, wenn PB0==0 und gleichzeitig PB1==1 akku = PINB;
if( (akku & 0b00000011) == 2 ){ Befehle }
akku = PINB;
if( (akku & ( (1<<0) | (1<<1) )) == (1<<1) )
{ Befehle }
akku = PINB;
if( (akku & ( (1<<PB0) | (1<<PB1) )) == (1<<PB1) )
{ Befehle }
Bedingung wahr, wenn PB0==1 und gleichzeitig PB1==1 akku = PINB;
if( (akku & 0b00000011) == 3 ){ Befehle }
akku = PINB;
if( (akku & ( (1<<0) | (1<<1) )) == ( (1<<1) | (1<<0) ) )
{ Befehle }
akku = PINB;
if( (akku & ( (1<<PB0) | (1<<PB1) )) == ( (1<<PB1) | (1<<PB0) ) )
{ Befehle }

Tabelle 3.3-1: Berücksichtigung des Zustands mehrerer Taster gleichzeitig.

Die Beispiele werden während der Vorlesung an der Tafel besprochen