9.6 Schreibt die Lauflicht Übung aus dem 1. Kurs auf die LED Strips um.

Dependencies:   mbed

Fork of 09-05-Uebung by th.iotkit1.ch

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?

UserRevisionLine numberNew 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 }