Gonzalo Brusco
/
QuiPAD
Real Time FIR Filter - Distinctive Excellence award winner :)
dma.h@0:b3e50e98acac, 2011-08-13 (annotated)
- Committer:
- Gonzakpo
- Date:
- Sat Aug 13 17:35:52 2011 +0000
- Revision:
- 0:b3e50e98acac
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Gonzakpo | 0:b3e50e98acac | 1 | |
Gonzakpo | 0:b3e50e98acac | 2 | |
Gonzakpo | 0:b3e50e98acac | 3 | #ifndef DMA_H_ |
Gonzakpo | 0:b3e50e98acac | 4 | #define DMA_H_ |
Gonzakpo | 0:b3e50e98acac | 5 | |
Gonzakpo | 0:b3e50e98acac | 6 | #include "mbed.h" |
Gonzakpo | 0:b3e50e98acac | 7 | |
Gonzakpo | 0:b3e50e98acac | 8 | |
Gonzakpo | 0:b3e50e98acac | 9 | /************************************DEFINICIONES DE TIPOS********************************************/ |
Gonzakpo | 0:b3e50e98acac | 10 | /*Estructura de los nodos usados por las Listas del DMA*/ |
Gonzakpo | 0:b3e50e98acac | 11 | typedef struct |
Gonzakpo | 0:b3e50e98acac | 12 | { |
Gonzakpo | 0:b3e50e98acac | 13 | unsigned long int sourceAddr; /*Direccion inicial de la memoria/periferico de partida*/ |
Gonzakpo | 0:b3e50e98acac | 14 | unsigned long int destAddr; /*Direccion inicial de la memoria/periferico de destino*/ |
Gonzakpo | 0:b3e50e98acac | 15 | unsigned long int nextNode; /*Proximo nodo de la lista (una vez que se enviaron todos los datos*/ |
Gonzakpo | 0:b3e50e98acac | 16 | unsigned long int dmaControl; /*Registro de configuracion del DMA que puede ser modificado nodo a nodo*/ |
Gonzakpo | 0:b3e50e98acac | 17 | /* Detalle dmaControl: Pagina 603 del User Manual del LPC1768 */ |
Gonzakpo | 0:b3e50e98acac | 18 | }dmaLinkedListNode; |
Gonzakpo | 0:b3e50e98acac | 19 | |
Gonzakpo | 0:b3e50e98acac | 20 | /* Tipo de dato booleano */ |
Gonzakpo | 0:b3e50e98acac | 21 | typedef enum {FALSE, TRUE} bool_t; |
Gonzakpo | 0:b3e50e98acac | 22 | |
Gonzakpo | 0:b3e50e98acac | 23 | /* Tipo de dato usado para saber que buffer debo procesar/escribir */ |
Gonzakpo | 0:b3e50e98acac | 24 | typedef enum {PING, PONG} pingpong_t; |
Gonzakpo | 0:b3e50e98acac | 25 | |
Gonzakpo | 0:b3e50e98acac | 26 | /*****************************************VARIABLES***************************************************/ |
Gonzakpo | 0:b3e50e98acac | 27 | /* Se decidio el uso de variables globales en lugar de wrappers para agilizar el codigo lo mas posible. */ |
Gonzakpo | 0:b3e50e98acac | 28 | |
Gonzakpo | 0:b3e50e98acac | 29 | /* Esta variable indica si se atendio una interrupcion */ |
Gonzakpo | 0:b3e50e98acac | 30 | /* Nos indica si se completo la adquisicion de uno de los buffers */ |
Gonzakpo | 0:b3e50e98acac | 31 | extern bool_t BufferTransferCompleted; |
Gonzakpo | 0:b3e50e98acac | 32 | |
Gonzakpo | 0:b3e50e98acac | 33 | /* Esta variable indica que buffer debo procesar/escribir */ |
Gonzakpo | 0:b3e50e98acac | 34 | extern pingpong_t BufferToProcess; |
Gonzakpo | 0:b3e50e98acac | 35 | |
Gonzakpo | 0:b3e50e98acac | 36 | /*****************************************FUNCIONES***************************************************/ |
Gonzakpo | 0:b3e50e98acac | 37 | void initDMAs(dmaLinkedListNode *, dmaLinkedListNode *); /* Inicializacion de los canales DMA */ |
Gonzakpo | 0:b3e50e98acac | 38 | |
Gonzakpo | 0:b3e50e98acac | 39 | #endif /* DMA_H_ */ |