Fatima Vunic
/
LAB_Led2
g
Revision 1:210e74bbbe34, committed 2019-12-05
- Comitter:
- fatima365
- Date:
- Thu Dec 05 18:57:15 2019 +0000
- Parent:
- 0:30dbbeb201f5
- Commit message:
- a
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/leds2.cpp Thu Dec 05 18:57:15 2019 +0000 @@ -0,0 +1,28 @@ +#include "mbed.h" + +// LSB MSB +// 2^0 2^1 2^2 2^3 2^7 +BusOut lb(D2, D3, D6, D9, D11, D12, A6, D13); + +void main() +{ + while(1) + { + BitsSetzen(); + } +} + +void BitsSetzen() +{ + lb = 1; // B#0001 D2 leuchtet + wait_ms(500); + lb = 2; // B#0010 D3 leuchtet + wait_ms(500); + lb = 3; // B#0011 D2 und D3 leuchten + wait_ms(500); + lb = 4; // B#0100 D6 leuchtet + wait_ms(500); + lb = 8; // B#1000 D9 leuchtet +} + +
--- a/main.cpp Thu Nov 28 19:40:00 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -#include "mbed.h" - -DigitalOut L1(D2); -DigitalOut L2(D3); -DigitalOut L3(D6); - -int main() { - L1=L2=L3=0; - while(1) { - L1=1; wait_ms(200); L1=0; - L2=1; wait_ms(200); L1=0; - L3=1; wait_ms(200); L1=0; - } -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/von_lehrerbox.cpp Thu Dec 05 18:57:15 2019 +0000 @@ -0,0 +1,75 @@ +// Bitoperationen in C +// & | ^ << >> + +// Logische Verknüpfungs-Operatoren +// && || ! + +a = 3; // dez +a = 0x3; +a = 0xA; + +// Der Bitschiebe-Befehl in C/C++ + +int a; + +a = B#0001; // in a steht Binär 0001 + +a = a << 1; // in a steht jetzt B#0010 +a = a << 1; // in a steht jetzt B#0100 + +a = a >> 2; // in a steht jetzt B#0001 +a = a >> 1; // in a steht jetzt B#0000 + + +// Bitwise OR +B#1001 | B#0010 = B#1011 + + +// Bits in einem Byte mit Bitwise-And abfragen + +B#1010 & B#0101 = B#0000 + +B#1010 & B#1000 = B#1000 + +// !!gezieltes!! abfragen ob ein Bit in einem Byte gesetzt ist + + 2^3 2^2 2^1 2^0 +B# 0 0 0 0; + +int btn; + +if( btn & 0001 ) B#xxxx & B#0001 + printf("Bit0 ist gesetzt"); + +if( btn & 2 ) B#xxxx & B#0010 + printf("Bit1 ist gesetzt"); + +if( btn & 4 ) + printf("Bit2 ist gesetzt"); + +if( btn & 8 ) + printf("Bit3 ist gesetzt"); + + +// Mit dem Bitwise-OR Bits in einem Byte setzen +// ohne die schon gesetzen Bits zu zerstören + +int leds; + +leds = B#0001; // Bit0 ist gesetzt + +leds = B#0010; // Bit1 ist gesetzt aber Bit0 ist leider wieder gelöscht + +// Die Lösung ist, daß man Bits dazuverodert +leds = leds | B#0010; // leds ist jetzt B#0011; + + + +// Logische operatoren + +int a = 1; +int b = 1; + +int c = ( a && b ); + +int d = 5; // B#0101