Template for advanced microcontrollers assignment 'DMA' 2017

Dependencies:   SimpleDMA

Committer:
wkleunen
Date:
Mon Oct 16 18:58:17 2017 +0000
Revision:
2:9567c0734e96
Parent:
1:1db1c42a2348
Revert incorrect comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wkleunen 0:7006377c8a24 1 #include "mbed.h"
wkleunen 0:7006377c8a24 2 #include "SimpleDMA.h"
wkleunen 0:7006377c8a24 3 #include <algorithm>
wkleunen 0:7006377c8a24 4
wkleunen 0:7006377c8a24 5 RawSerial pc(USBTX, USBRX); // PC tx, rx
wkleunen 0:7006377c8a24 6 RawSerial device(PTE0, PTE1); // UART1 tx, rx
wkleunen 0:7006377c8a24 7
wkleunen 0:7006377c8a24 8 DigitalOut led1(LED_RED);
wkleunen 0:7006377c8a24 9 DigitalOut led2(LED_GREEN);
wkleunen 0:7006377c8a24 10
wkleunen 2:9567c0734e96 11 SimpleDMA dma_pc;
wkleunen 0:7006377c8a24 12 SimpleDMA dma_device;
wkleunen 0:7006377c8a24 13
wkleunen 0:7006377c8a24 14 int main()
wkleunen 0:7006377c8a24 15 {
wkleunen 0:7006377c8a24 16 // Enable the TX and RX dma on UART1
wkleunen 0:7006377c8a24 17 UART1->C2 |= UART_C2_RIE_MASK | UART_C2_TIE_MASK ;
wkleunen 0:7006377c8a24 18 UART1->C4 |= UART_C4_RDMAS_MASK | UART_C4_TDMAS_MASK;
wkleunen 0:7006377c8a24 19
wkleunen 2:9567c0734e96 20 // TODO: Configure dma_device to transfer data from UART1 to UART0
wkleunen 0:7006377c8a24 21 // ...
wkleunen 0:7006377c8a24 22
wkleunen 0:7006377c8a24 23 uint8_t buffer[128];
wkleunen 0:7006377c8a24 24 uint8_t buffer_ptr = 0;
wkleunen 0:7006377c8a24 25
wkleunen 0:7006377c8a24 26 while(1) {
wkleunen 0:7006377c8a24 27 char c = pc.getc();
wkleunen 0:7006377c8a24 28 buffer[buffer_ptr] = c;
wkleunen 0:7006377c8a24 29 buffer_ptr = (buffer_ptr + 1) % sizeof(buffer);
wkleunen 0:7006377c8a24 30
wkleunen 0:7006377c8a24 31 if(c == '\r')
wkleunen 0:7006377c8a24 32 {
wkleunen 0:7006377c8a24 33 buffer[buffer_ptr] = '\n';
wkleunen 0:7006377c8a24 34 ++buffer_ptr;
wkleunen 0:7006377c8a24 35
wkleunen 0:7006377c8a24 36 led2 = !led2;
wkleunen 0:7006377c8a24 37
wkleunen 2:9567c0734e96 38 // TODO: Trigger dma_pc to transfer data from the buffer to UART1
wkleunen 0:7006377c8a24 39 // ....
wkleunen 0:7006377c8a24 40
wkleunen 0:7006377c8a24 41 buffer_ptr = 0;
wkleunen 0:7006377c8a24 42 }
wkleunen 0:7006377c8a24 43 }
wkleunen 0:7006377c8a24 44 }
wkleunen 0:7006377c8a24 45
wkleunen 0:7006377c8a24 46