![](/media/cache/group/ep_LV4vK4D.webp.50x50_q85.jpg)
9.6 Schreibt die Lauflicht Übung aus dem 1. Kurs auf die LED Strips um.
Dependencies: mbed
Fork of 09-05-Uebung by
main.cpp@1:4e24bd21f2ce, 2015-05-24 (annotated)
- Committer:
- stefan1691
- Date:
- Sun May 24 07:27:19 2015 +0000
- Revision:
- 1:4e24bd21f2ce
- Parent:
- 0:96b9c5faa0d1
- Child:
- 2:cc8f334b9c12
9.6 Schreibt die Lauflicht ?bung aus dem 1. Kurs auf die LED Strips um.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
stefan1691 | 1:4e24bd21f2ce | 1 | /** 9.6 Schreibt die Lauflicht Übung aus dem 1. Kurs auf die LED Strips um. |
marcel1691 | 0:96b9c5faa0d1 | 2 | */ |
marcel1691 | 0:96b9c5faa0d1 | 3 | #include "mbed.h" |
marcel1691 | 0:96b9c5faa0d1 | 4 | |
marcel1691 | 0:96b9c5faa0d1 | 5 | SPI spi(D11, NC, D13); // mosi, miso, sclk |
marcel1691 | 0:96b9c5faa0d1 | 6 | |
marcel1691 | 0:96b9c5faa0d1 | 7 | /** 3 x 3 Werte */ |
marcel1691 | 0:96b9c5faa0d1 | 8 | unsigned int strip[9]; |
marcel1691 | 0:96b9c5faa0d1 | 9 | |
marcel1691 | 0:96b9c5faa0d1 | 10 | void writeLED() |
marcel1691 | 0:96b9c5faa0d1 | 11 | { |
stefan1691 | 1:4e24bd21f2ce | 12 | for ( int p = 0; p < 6; p++ ) |
marcel1691 | 0:96b9c5faa0d1 | 13 | spi.write( strip[p] ); |
marcel1691 | 0:96b9c5faa0d1 | 14 | } |
marcel1691 | 0:96b9c5faa0d1 | 15 | |
marcel1691 | 0:96b9c5faa0d1 | 16 | void clearLED() |
marcel1691 | 0:96b9c5faa0d1 | 17 | { |
stefan1691 | 1:4e24bd21f2ce | 18 | for ( int p = 0; p < 6; p++ ) |
marcel1691 | 0:96b9c5faa0d1 | 19 | { |
marcel1691 | 0:96b9c5faa0d1 | 20 | strip[p] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 21 | spi.write( strip[p] ); |
marcel1691 | 0:96b9c5faa0d1 | 22 | } |
marcel1691 | 0:96b9c5faa0d1 | 23 | } |
marcel1691 | 0:96b9c5faa0d1 | 24 | |
marcel1691 | 0:96b9c5faa0d1 | 25 | int main() |
marcel1691 | 0:96b9c5faa0d1 | 26 | { |
marcel1691 | 0:96b9c5faa0d1 | 27 | printf( "LED Strip Test \n" ); |
marcel1691 | 0:96b9c5faa0d1 | 28 | |
marcel1691 | 0:96b9c5faa0d1 | 29 | spi.format( 8,0 ); |
marcel1691 | 0:96b9c5faa0d1 | 30 | spi.frequency( 800000 ); |
marcel1691 | 0:96b9c5faa0d1 | 31 | |
marcel1691 | 0:96b9c5faa0d1 | 32 | while (true) |
marcel1691 | 0:96b9c5faa0d1 | 33 | { |
marcel1691 | 0:96b9c5faa0d1 | 34 | // Gruen, Rot, Blau - von Dunkel bis Hell |
marcel1691 | 0:96b9c5faa0d1 | 35 | for ( int i = 0; i < 128; i+=32 ) |
marcel1691 | 0:96b9c5faa0d1 | 36 | { |
marcel1691 | 0:96b9c5faa0d1 | 37 | // LED 1 |
marcel1691 | 0:96b9c5faa0d1 | 38 | strip[0] = i; |
marcel1691 | 0:96b9c5faa0d1 | 39 | strip[1] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 40 | strip[2] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 41 | // LED 2 |
marcel1691 | 0:96b9c5faa0d1 | 42 | strip[3] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 43 | strip[4] = i; |
marcel1691 | 0:96b9c5faa0d1 | 44 | strip[5] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 45 | // LED 3 |
marcel1691 | 0:96b9c5faa0d1 | 46 | strip[6] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 47 | strip[7] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 48 | strip[8] = i; |
marcel1691 | 0:96b9c5faa0d1 | 49 | writeLED(); |
marcel1691 | 0:96b9c5faa0d1 | 50 | wait( 0.1 ); |
marcel1691 | 0:96b9c5faa0d1 | 51 | } |
marcel1691 | 0:96b9c5faa0d1 | 52 | wait( 1.0 ); |
marcel1691 | 0:96b9c5faa0d1 | 53 | clearLED(); |
marcel1691 | 0:96b9c5faa0d1 | 54 | |
marcel1691 | 0:96b9c5faa0d1 | 55 | // Lauflicht (5 x 4 Zustaende) |
marcel1691 | 0:96b9c5faa0d1 | 56 | int p = 0; |
marcel1691 | 0:96b9c5faa0d1 | 57 | for ( int i = 0; i < 20; i++ ) |
marcel1691 | 0:96b9c5faa0d1 | 58 | { |
marcel1691 | 0:96b9c5faa0d1 | 59 | p++; |
marcel1691 | 0:96b9c5faa0d1 | 60 | switch ( p ) |
marcel1691 | 0:96b9c5faa0d1 | 61 | { |
marcel1691 | 0:96b9c5faa0d1 | 62 | case 1: |
marcel1691 | 0:96b9c5faa0d1 | 63 | strip[0] = strip[1] = strip[2] = 32; |
marcel1691 | 0:96b9c5faa0d1 | 64 | break; |
marcel1691 | 0:96b9c5faa0d1 | 65 | case 2: |
marcel1691 | 0:96b9c5faa0d1 | 66 | strip[0] = strip[1] = strip[2] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 67 | strip[3] = strip[4] = strip[5] = 32; |
marcel1691 | 0:96b9c5faa0d1 | 68 | break; |
marcel1691 | 0:96b9c5faa0d1 | 69 | case 3: |
marcel1691 | 0:96b9c5faa0d1 | 70 | strip[3] = strip[4] = strip[5] = 0; |
marcel1691 | 0:96b9c5faa0d1 | 71 | strip[6] = strip[7] = strip[8] = 32; |
marcel1691 | 0:96b9c5faa0d1 | 72 | break; |
marcel1691 | 0:96b9c5faa0d1 | 73 | default: |
marcel1691 | 0:96b9c5faa0d1 | 74 | clearLED(); |
marcel1691 | 0:96b9c5faa0d1 | 75 | p = 0; |
marcel1691 | 0:96b9c5faa0d1 | 76 | break; |
marcel1691 | 0:96b9c5faa0d1 | 77 | } |
marcel1691 | 0:96b9c5faa0d1 | 78 | writeLED(); |
marcel1691 | 0:96b9c5faa0d1 | 79 | wait( 0.2 ); |
marcel1691 | 0:96b9c5faa0d1 | 80 | } |
marcel1691 | 0:96b9c5faa0d1 | 81 | } |
marcel1691 | 0:96b9c5faa0d1 | 82 | } |