Wireless / Mbed 2 deprecated spi_buttons_leds

Dependencies:   mbed nRF24L01P

Committer:
jeroenkoster
Date:
Tue Dec 04 13:02:47 2018 +0000
Revision:
1:cedd9360f5c7
Parent:
0:c2ab34dc9018
Child:
3:74f042e3ec10
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jeroenkoster 0:c2ab34dc9018 1 #include "mbed.h"
jeroenkoster 0:c2ab34dc9018 2
jeroenkoster 0:c2ab34dc9018 3 //Init Pins
jeroenkoster 0:c2ab34dc9018 4 SPI spi(D11, D12, D13);
jeroenkoster 0:c2ab34dc9018 5 DigitalOut cs(D10, 1);
jeroenkoster 0:c2ab34dc9018 6
jeroenkoster 1:cedd9360f5c7 7 void init() {
jeroenkoster 0:c2ab34dc9018 8 cs = 0;
jeroenkoster 0:c2ab34dc9018 9
jeroenkoster 1:cedd9360f5c7 10 spi.write(0x46); // Select IODIR
jeroenkoster 1:cedd9360f5c7 11 spi.write(0x00); // 0000 = Set all to output
jeroenkoster 0:c2ab34dc9018 12 spi.write(0x00);
jeroenkoster 0:c2ab34dc9018 13
jeroenkoster 0:c2ab34dc9018 14 // Deselect the device
jeroenkoster 0:c2ab34dc9018 15 cs = 1;
jeroenkoster 1:cedd9360f5c7 16 }
jeroenkoster 1:cedd9360f5c7 17
jeroenkoster 1:cedd9360f5c7 18 void setLed(int i) {
jeroenkoster 1:cedd9360f5c7 19 cs = 0;
jeroenkoster 1:cedd9360f5c7 20 spi.write(0x46);
jeroenkoster 1:cedd9360f5c7 21 spi.write(0x09);
jeroenkoster 1:cedd9360f5c7 22
jeroenkoster 1:cedd9360f5c7 23 int mask = 1;
jeroenkoster 1:cedd9360f5c7 24 int writeValue = 255;
jeroenkoster 1:cedd9360f5c7 25 writeValue ^= mask << i;
jeroenkoster 1:cedd9360f5c7 26 spi.write(writeValue);
jeroenkoster 1:cedd9360f5c7 27 cs = 1;
jeroenkoster 1:cedd9360f5c7 28 }
jeroenkoster 1:cedd9360f5c7 29
jeroenkoster 1:cedd9360f5c7 30 int readButton() {
jeroenkoster 1:cedd9360f5c7 31 cs = 0;
jeroenkoster 1:cedd9360f5c7 32 spi.write(0x47);
jeroenkoster 1:cedd9360f5c7 33 spi.write(0x09);
jeroenkoster 1:cedd9360f5c7 34 int misoOutput = spi.write(0x00);
jeroenkoster 1:cedd9360f5c7 35 cs = 1;
jeroenkoster 1:cedd9360f5c7 36
jeroenkoster 1:cedd9360f5c7 37 misoOutput = misoOutput & 192;
jeroenkoster 1:cedd9360f5c7 38 printf("output miso: %d", misoOutput);
jeroenkoster 1:cedd9360f5c7 39 if (misoOutput == 128) { // S1 pressed
jeroenkoster 1:cedd9360f5c7 40 return 1;
jeroenkoster 1:cedd9360f5c7 41 } else if (misoOutput == 64) { // S2 pressed
jeroenkoster 1:cedd9360f5c7 42 return 5;
jeroenkoster 1:cedd9360f5c7 43 }
jeroenkoster 1:cedd9360f5c7 44 return 0;
jeroenkoster 1:cedd9360f5c7 45 }
jeroenkoster 1:cedd9360f5c7 46
jeroenkoster 1:cedd9360f5c7 47 int main() {
jeroenkoster 1:cedd9360f5c7 48 cs = 1;
jeroenkoster 1:cedd9360f5c7 49 printf("Initializing. \n\r");
jeroenkoster 1:cedd9360f5c7 50 init();
jeroenkoster 1:cedd9360f5c7 51 printf("Setting Led. \n\r");
jeroenkoster 1:cedd9360f5c7 52
jeroenkoster 1:cedd9360f5c7 53 // Select the device by seting chip select low
jeroenkoster 1:cedd9360f5c7 54 int led = 0;
jeroenkoster 0:c2ab34dc9018 55 printf("Starting \n\r");
jeroenkoster 0:c2ab34dc9018 56 while (true) {
jeroenkoster 1:cedd9360f5c7 57 setLed(led);
jeroenkoster 1:cedd9360f5c7 58 led = (led + readButton()) % 6;
jeroenkoster 1:cedd9360f5c7 59 wait(0.1);
jeroenkoster 0:c2ab34dc9018 60 }
jeroenkoster 0:c2ab34dc9018 61 }