Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@3:fb1e6ef6e655, 2020-01-11 (annotated)
- Committer:
- Ursukar
- Date:
- Sat Jan 11 10:31:57 2020 +0000
- Revision:
- 3:fb1e6ef6e655
- Parent:
- 2:488fedfa3e4e
Bitmanipulation
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Ursukar | 0:b3ff6214f9c0 | 1 | ////////////////////////////////////////////// |
| Ursukar | 0:b3ff6214f9c0 | 2 | // Setzen/Löschen/Togglen // |
| Ursukar | 0:b3ff6214f9c0 | 3 | // NUCLEO-L432KC // |
| Ursukar | 0:b3ff6214f9c0 | 4 | // Stefan Simbürger // |
| Ursukar | 0:b3ff6214f9c0 | 5 | // 10.01.2020 // |
| Ursukar | 0:b3ff6214f9c0 | 6 | // Der einfachkeitshalber wurde die // |
| Ursukar | 0:b3ff6214f9c0 | 7 | // Aufgabe mit 8 Leds und 5 Buttons // |
| Ursukar | 0:b3ff6214f9c0 | 8 | // bei einem bestehenden Aufbau // |
| Ursukar | 0:b3ff6214f9c0 | 9 | // durchgeführt // |
| Ursukar | 0:b3ff6214f9c0 | 10 | ////////////////////////////////////////////// |
| Ursukar | 0:b3ff6214f9c0 | 11 | |
| Ursukar | 0:b3ff6214f9c0 | 12 | #include "mbed.h" |
| Ursukar | 0:b3ff6214f9c0 | 13 | |
| Ursukar | 2:488fedfa3e4e | 14 | |
| Ursukar | 3:fb1e6ef6e655 | 15 | BusOut Leds(D12, D11, D10, D6, D5, D4, D3, D2); |
| Ursukar | 2:488fedfa3e4e | 16 | BusIn Btn(A0, A1, A2, A6, A7); |
| Ursukar | 1:1b60b274d6fc | 17 | Timer T1; |
| Ursukar | 0:b3ff6214f9c0 | 18 | |
| Ursukar | 0:b3ff6214f9c0 | 19 | int main() { |
| Ursukar | 0:b3ff6214f9c0 | 20 | uint8_t maskLsbMsb = 0x81; |
| Ursukar | 1:1b60b274d6fc | 21 | T1.start(); |
| Ursukar | 1:1b60b274d6fc | 22 | unsigned long actualTime; |
| Ursukar | 1:1b60b274d6fc | 23 | unsigned long lastTrigger; |
| Ursukar | 1:1b60b274d6fc | 24 | uint8_t ButtonState; |
| Ursukar | 1:1b60b274d6fc | 25 | uint8_t LastButtonState; |
| Ursukar | 1:1b60b274d6fc | 26 | |
| Ursukar | 0:b3ff6214f9c0 | 27 | while(1) { |
| Ursukar | 1:1b60b274d6fc | 28 | ButtonState = Btn.read(); |
| Ursukar | 1:1b60b274d6fc | 29 | actualTime = T1.read_ms(); |
| Ursukar | 0:b3ff6214f9c0 | 30 | // Sets LSB and MSB |
| Ursukar | 0:b3ff6214f9c0 | 31 | if(Btn == 0x01) // Button A0 |
| Ursukar | 0:b3ff6214f9c0 | 32 | { |
| Ursukar | 0:b3ff6214f9c0 | 33 | Leds = Leds | maskLsbMsb; |
| Ursukar | 0:b3ff6214f9c0 | 34 | } |
| Ursukar | 0:b3ff6214f9c0 | 35 | // Deletes LSB and MSB |
| Ursukar | 0:b3ff6214f9c0 | 36 | if(Btn == 0x02) // Button A1 |
| Ursukar | 0:b3ff6214f9c0 | 37 | { |
| Ursukar | 0:b3ff6214f9c0 | 38 | Leds = Leds & !maskLsbMsb; |
| Ursukar | 0:b3ff6214f9c0 | 39 | } |
| Ursukar | 0:b3ff6214f9c0 | 40 | // Toggles LSB and MSB |
| Ursukar | 1:1b60b274d6fc | 41 | // Debouncing the button |
| Ursukar | 1:1b60b274d6fc | 42 | if(Btn == 0x04 && ButtonState ^ LastButtonState && (actualTime - lastTrigger) > 500 ) // Button A2 |
| Ursukar | 0:b3ff6214f9c0 | 43 | { |
| Ursukar | 0:b3ff6214f9c0 | 44 | Leds = Leds ^ maskLsbMsb; |
| Ursukar | 1:1b60b274d6fc | 45 | lastTrigger = T1.read_ms(); |
| Ursukar | 0:b3ff6214f9c0 | 46 | } |
| Ursukar | 1:1b60b274d6fc | 47 | LastButtonState = ButtonState; |
| Ursukar | 2:488fedfa3e4e | 48 | // Sets all LEDs |
| Ursukar | 2:488fedfa3e4e | 49 | if(Btn == 0x03) // Button A0 & A1 |
| Ursukar | 2:488fedfa3e4e | 50 | { |
| Ursukar | 2:488fedfa3e4e | 51 | Leds = Leds | 0xFF; |
| Ursukar | 2:488fedfa3e4e | 52 | } |
| Ursukar | 2:488fedfa3e4e | 53 | // Deletes all seted LEDs |
| Ursukar | 2:488fedfa3e4e | 54 | if(Btn == 0x08) // Button A6 |
| Ursukar | 2:488fedfa3e4e | 55 | { |
| Ursukar | 2:488fedfa3e4e | 56 | Leds = Leds & ~Leds.read(); |
| Ursukar | 2:488fedfa3e4e | 57 | } |
| Ursukar | 2:488fedfa3e4e | 58 | // Sets 3rd and 5th LED |
| Ursukar | 2:488fedfa3e4e | 59 | if(Btn == 0x10) // Button A7 |
| Ursukar | 2:488fedfa3e4e | 60 | { |
| Ursukar | 2:488fedfa3e4e | 61 | Leds = Leds | 0x14; |
| Ursukar | 2:488fedfa3e4e | 62 | } |
| Ursukar | 0:b3ff6214f9c0 | 63 | } |
| Ursukar | 0:b3ff6214f9c0 | 64 | } |