Template for advanced microcontrollers assignment 'DMA' 2017

Dependencies:   SimpleDMA

main.cpp

Committer:
wkleunen
Date:
2017-10-16
Revision:
1:1db1c42a2348
Parent:
0:7006377c8a24
Child:
2:9567c0734e96

File content as of revision 1:1db1c42a2348:

#include "mbed.h"
#include "SimpleDMA.h"
#include <algorithm>
 
RawSerial pc(USBTX, USBRX); // PC tx, rx
RawSerial device(PTE0, PTE1); // UART1 tx, rx
 
DigitalOut led1(LED_RED);
DigitalOut led2(LED_GREEN);

SimpleDMA dma_device;
    
int main() 
{   
    // Enable the TX and RX dma on UART1
    UART1->C2 |= UART_C2_RIE_MASK | UART_C2_TIE_MASK ;  
    UART1->C4 |= UART_C4_RDMAS_MASK | UART_C4_TDMAS_MASK;
  
    // TODO: Configure dma_device to transfer data from buffer to UART1
    // ...
    
    uint8_t buffer[128];
    uint8_t buffer_ptr = 0; 

    while(1) {
        char c = pc.getc();    
        buffer[buffer_ptr] = c;
        buffer_ptr = (buffer_ptr + 1) % sizeof(buffer);   
        
        if(c == '\r')
        {
            buffer[buffer_ptr] = '\n';
            ++buffer_ptr;
            
            led2 = !led2;
            
            // TODO: Trigger dma_device to transfer data from the buffer to UART1
            // ....
            
            buffer_ptr = 0;
        }                               
    }
}