retrying spi on frdm (with interrupts)

Dependencies:   mbed

Committer:
armdran
Date:
Tue Apr 07 15:32:42 2015 +0000
Revision:
1:2ba1eb5da872
Parent:
0:c7c985b76b04
added modifier in protocol stack (should work with usb host)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
armdran 0:c7c985b76b04 1 #include "mbed.h"
armdran 0:c7c985b76b04 2
armdran 0:c7c985b76b04 3 //SPI Master
armdran 0:c7c985b76b04 4
armdran 0:c7c985b76b04 5 Serial pc(USBTX, USBRX);
armdran 0:c7c985b76b04 6 SPI spi(D11, D12, D13); // mosi, miso, sclk
armdran 0:c7c985b76b04 7 DigitalOut cs(D10);
armdran 0:c7c985b76b04 8 InterruptIn ir(D9);
armdran 0:c7c985b76b04 9
armdran 0:c7c985b76b04 10 uint8_t spi_write(uint8_t write = 0xFF) {
armdran 0:c7c985b76b04 11 cs = 0;
armdran 0:c7c985b76b04 12 uint8_t response = spi.write(write);
armdran 0:c7c985b76b04 13 cs = 1;
armdran 1:2ba1eb5da872 14 //printf(" sent: %x; received: %x\r\n", write, response);
armdran 0:c7c985b76b04 15 return response;
armdran 0:c7c985b76b04 16 }
armdran 0:c7c985b76b04 17
armdran 0:c7c985b76b04 18 void keyboardEvent() {
armdran 1:2ba1eb5da872 19 printf("ir received.\r\n");
armdran 1:2ba1eb5da872 20
armdran 1:2ba1eb5da872 21 uint8_t keystroke = spi_write(0xFE);
armdran 1:2ba1eb5da872 22 printf(" key %x received.\r\n", keystroke);
armdran 0:c7c985b76b04 23
armdran 1:2ba1eb5da872 24 uint8_t modifier = spi_write(keystroke);
armdran 1:2ba1eb5da872 25 printf(" mod %x received.\r\n", modifier);
armdran 0:c7c985b76b04 26
armdran 1:2ba1eb5da872 27 uint8_t dummy = spi_write(modifier);
armdran 1:2ba1eb5da872 28 printf(" got dummy %x. done.\r\n", dummy);
armdran 0:c7c985b76b04 29 }
armdran 0:c7c985b76b04 30
armdran 0:c7c985b76b04 31 int main() {
armdran 0:c7c985b76b04 32 printf("init\r\n");
armdran 0:c7c985b76b04 33 spi.format(8,1);
armdran 0:c7c985b76b04 34 spi.frequency(1000000);
armdran 1:2ba1eb5da872 35
armdran 0:c7c985b76b04 36 ir.rise(&keyboardEvent);
armdran 0:c7c985b76b04 37 while(1) { }
armdran 0:c7c985b76b04 38 }