avnish aggarwal
/
Bootcamp-dma-serial
ok see #define to of code uses MODSERIAL - buffered serial
main.cpp@0:6bd2bff61284, 2014-03-19 (annotated)
- Committer:
- avnisha
- Date:
- Wed Mar 19 04:15:19 2014 +0000
- Revision:
- 0:6bd2bff61284
ok
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
avnisha | 0:6bd2bff61284 | 1 | |
avnisha | 0:6bd2bff61284 | 2 | // |
avnisha | 0:6bd2bff61284 | 3 | // needed for backward code compatibility !!!! |
avnisha | 0:6bd2bff61284 | 4 | // |
avnisha | 0:6bd2bff61284 | 5 | |
avnisha | 0:6bd2bff61284 | 6 | #define _uidx _serial.index |
avnisha | 0:6bd2bff61284 | 7 | |
avnisha | 0:6bd2bff61284 | 8 | #include "mbed.h" |
avnisha | 0:6bd2bff61284 | 9 | #include "MODDMA.h" |
avnisha | 0:6bd2bff61284 | 10 | #include "MODSERIAL.h" |
avnisha | 0:6bd2bff61284 | 11 | |
avnisha | 0:6bd2bff61284 | 12 | |
avnisha | 0:6bd2bff61284 | 13 | /* |
avnisha | 0:6bd2bff61284 | 14 | * Uses DMA to send data to buffer attached to a serial device |
avnisha | 0:6bd2bff61284 | 15 | */ |
avnisha | 0:6bd2bff61284 | 16 | |
avnisha | 0:6bd2bff61284 | 17 | |
avnisha | 0:6bd2bff61284 | 18 | DigitalOut led1(LED1); |
avnisha | 0:6bd2bff61284 | 19 | DigitalOut led4(LED4); |
avnisha | 0:6bd2bff61284 | 20 | MODSERIAL pc(USBTX, USBRX); |
avnisha | 0:6bd2bff61284 | 21 | MODDMA dma; |
avnisha | 0:6bd2bff61284 | 22 | |
avnisha | 0:6bd2bff61284 | 23 | class FOO { |
avnisha | 0:6bd2bff61284 | 24 | public: |
avnisha | 0:6bd2bff61284 | 25 | void dmaCallback(MODSERIAL_IRQ_INFO *q) { led4 = 1; } |
avnisha | 0:6bd2bff61284 | 26 | }; |
avnisha | 0:6bd2bff61284 | 27 | |
avnisha | 0:6bd2bff61284 | 28 | FOO foo; |
avnisha | 0:6bd2bff61284 | 29 | |
avnisha | 0:6bd2bff61284 | 30 | int main() { |
avnisha | 0:6bd2bff61284 | 31 | char s[] = "This is a DMA transfer test\n\r"; |
avnisha | 0:6bd2bff61284 | 32 | pc.baud( 9600 ); |
avnisha | 0:6bd2bff61284 | 33 | pc.MODDMA( &dma ); |
avnisha | 0:6bd2bff61284 | 34 | pc.attach_dmaSendComplete( &foo, &FOO::dmaCallback ); |
avnisha | 0:6bd2bff61284 | 35 | pc.dmaSend( s, sizeof(s) ); |
avnisha | 0:6bd2bff61284 | 36 | |
avnisha | 0:6bd2bff61284 | 37 | while(1) { |
avnisha | 0:6bd2bff61284 | 38 | led1 = !led1; |
avnisha | 0:6bd2bff61284 | 39 | wait(0.2); |
avnisha | 0:6bd2bff61284 | 40 | pc.dmaSend( s, sizeof(s) ); |
avnisha | 0:6bd2bff61284 | 41 | } |
avnisha | 0:6bd2bff61284 | 42 | } |