SPI slave DMA-read program for FRDMKL46Z, verified, working
Dependencies: SimpleDMA mbed-rtos mbed
Diff: main.cpp
- Revision:
- 2:16545dbc88ae
- Parent:
- 1:3cceef118195
- Child:
- 3:e59d61aac1e1
--- a/main.cpp Thu Jul 16 05:19:02 2015 +0000 +++ b/main.cpp Thu Jul 16 05:40:25 2015 +0000 @@ -1,5 +1,4 @@ #include "mbed.h" -#include "rtos.h" #include "SimpleDMA.h" #include "dmaSPIslave.h" @@ -19,37 +18,27 @@ pc.baud(9600); pc.printf("inside main\r\n"); spi.format(8,0); -// spi.frequency(16000000); + spi.frequency(10000000); uint8_t buffer[PAYLOAD_LENGTH] = {0}; pc.printf("welcome to dma test, start sending data now\r\n"); + +// initialise the buffer for dma + spi.bulkRead_init(buffer, PAYLOAD_LENGTH, &do_this); +// start dma read + spi.bulkRead_start(); -// while(true){ -// int i = 0; -// while(i < PAYLOAD_LENGTH){ -// if(spi.receive()){ -// buffer[i] = spi.read(); -// ++i; -// ledg = !ledg; -// } -// } -// for(int i = 0 ; i < PAYLOAD_LENGTH ; ++i){ -// pc.printf("%02x ", buffer[i]); -// } -// pc.printf("\r\n"); -// -// } - - spi.bulkRead_init(buffer, PAYLOAD_LENGTH, &do_this); - spi.bulkRead_start(); while(true){ if(flag){ flag = false; ledg = !ledg; - for(int i = 0 ; i < PAYLOAD_LENGTH ; ++i){ - pc.printf("%02x ", buffer[i]); - } - pc.printf("\r\n"); + +// for(int i = 0 ; i < PAYLOAD_LENGTH ; ++i){ +// pc.printf("%02x ", buffer[i]); +// } +// pc.printf("\r\n"); + +// start dma again after handling the data spi.bulkRead_start(); } }