retrying spi on frdm (with interrupts)
Dependencies: mbed
main.cpp
00001 #include "mbed.h" 00002 00003 //SPI Master 00004 00005 Serial pc(USBTX, USBRX); 00006 SPI spi(D11, D12, D13); // mosi, miso, sclk 00007 DigitalOut cs(D10); 00008 InterruptIn ir(D9); 00009 00010 uint8_t spi_write(uint8_t write = 0xFF) { 00011 cs = 0; 00012 uint8_t response = spi.write(write); 00013 cs = 1; 00014 //printf(" sent: %x; received: %x\r\n", write, response); 00015 return response; 00016 } 00017 00018 void keyboardEvent() { 00019 printf("ir received.\r\n"); 00020 00021 uint8_t keystroke = spi_write(0xFE); 00022 printf(" key %x received.\r\n", keystroke); 00023 00024 uint8_t modifier = spi_write(keystroke); 00025 printf(" mod %x received.\r\n", modifier); 00026 00027 uint8_t dummy = spi_write(modifier); 00028 printf(" got dummy %x. done.\r\n", dummy); 00029 } 00030 00031 int main() { 00032 printf("init\r\n"); 00033 spi.format(8,1); 00034 spi.frequency(1000000); 00035 00036 ir.rise(&keyboardEvent); 00037 while(1) { } 00038 }
Generated on Fri Aug 12 2022 17:50:32 by 1.7.2