Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
UART3Interrupt.cpp@109:a5b8264ffbbc, 2015-04-07 (annotated)
- Committer:
- klauss
- Date:
- Tue Apr 07 14:27:44 2015 +0000
- Revision:
- 109:a5b8264ffbbc
- Parent:
- 106:a34fcf9f0e02
- Child:
- 113:db67ae00550e
bl wip
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
klauss | 0:4d17cd9c8f9d | 1 | #include "UART3Interrupt.h" |
klauss | 0:4d17cd9c8f9d | 2 | |
klauss | 109:a5b8264ffbbc | 3 | char RXBuffer[__CB_BUFFER_SIZE__]; |
klauss | 74:81c47fff88a5 | 4 | ///< UART3 RX Buffer |
klauss | 74:81c47fff88a5 | 5 | |
klauss | 0:4d17cd9c8f9d | 6 | volatile uint16_t RX_c = 0; |
klauss | 0:4d17cd9c8f9d | 7 | |
klauss | 74:81c47fff88a5 | 8 | ///< UART3 Serial Interrupt Handler |
klauss | 74:81c47fff88a5 | 9 | void SerialRecvInterrupt( void ){ |
klauss | 74:81c47fff88a5 | 10 | while ( LPC_UART3 -> LSR & ( 0<<1 ) ) {} |
klauss | 74:81c47fff88a5 | 11 | // Receive data from UART3 RX |
klauss | 74:81c47fff88a5 | 12 | *( RXBuffer + RX_c ) = LPC_UART3 -> RBR; |
klauss | 0:4d17cd9c8f9d | 13 | |
klauss | 109:a5b8264ffbbc | 14 | if( RXBuffer[ RX_c ] != RXBuffer[ RX_c - 1 ] ){ |
klauss | 109:a5b8264ffbbc | 15 | // led3 =!led3; |
klauss | 0:4d17cd9c8f9d | 16 | } |
klauss | 0:4d17cd9c8f9d | 17 | |
klauss | 0:4d17cd9c8f9d | 18 | RX_c++; |
klauss | 0:4d17cd9c8f9d | 19 | |
klauss | 78:1353744f01e1 | 20 | led4 =!led4; |
klauss | 78:1353744f01e1 | 21 | |
klauss | 74:81c47fff88a5 | 22 | if ( RX_c == 300 ){ |
klauss | 86:bf7b0d4c3232 | 23 | status = __READ__; |
klauss | 86:bf7b0d4c3232 | 24 | missed_pkg++; |
klauss | 99:e80850c51106 | 25 | cpld_pkg_rx_counter++; |
klauss | 0:4d17cd9c8f9d | 26 | } |
klauss | 0:4d17cd9c8f9d | 27 | } |
klauss | 0:4d17cd9c8f9d | 28 | |
klauss | 0:4d17cd9c8f9d | 29 | void RXFrameSync (void) { |
klauss | 0:4d17cd9c8f9d | 30 | RX_c = 0; |
klauss | 74:81c47fff88a5 | 31 | status = __WAITING__; |
klauss | 109:a5b8264ffbbc | 32 | } |
klauss | 109:a5b8264ffbbc | 33 | |
klauss | 109:a5b8264ffbbc | 34 | |
klauss | 109:a5b8264ffbbc | 35 | |
klauss | 109:a5b8264ffbbc | 36 | |
klauss | 109:a5b8264ffbbc | 37 | |
klauss | 109:a5b8264ffbbc | 38 | |
klauss | 109:a5b8264ffbbc | 39 | |
klauss | 109:a5b8264ffbbc | 40 | |
klauss | 109:a5b8264ffbbc | 41 | |
klauss | 109:a5b8264ffbbc | 42 | |
klauss | 109:a5b8264ffbbc | 43 | |
klauss | 109:a5b8264ffbbc | 44 | |
klauss | 109:a5b8264ffbbc | 45 | |
klauss | 109:a5b8264ffbbc | 46 | |
klauss | 109:a5b8264ffbbc | 47 | /* |
klauss | 109:a5b8264ffbbc | 48 | void initRX (void) { |
klauss | 109:a5b8264ffbbc | 49 | |
klauss | 109:a5b8264ffbbc | 50 | RXHeadPtr = IntBuff; // Initial state |
klauss | 109:a5b8264ffbbc | 51 | RXHeadPtr = RXTailPtr; |
klauss | 109:a5b8264ffbbc | 52 | |
klauss | 109:a5b8264ffbbc | 53 | } |
klauss | 109:a5b8264ffbbc | 54 | |
klauss | 109:a5b8264ffbbc | 55 | void SerialRecvInterrupt (void) // UART3 Serial Interrupt Handler |
klauss | 109:a5b8264ffbbc | 56 | { |
klauss | 109:a5b8264ffbbc | 57 | static uint8_t data = 0; |
klauss | 109:a5b8264ffbbc | 58 | while ( LPC_UART3->LSR &= (0<<1) ) {} |
klauss | 109:a5b8264ffbbc | 59 | // *(RXBuffer+idx) = LPC_UART3->RBR; Receive data from UART3 RX |
klauss | 109:a5b8264ffbbc | 60 | |
klauss | 109:a5b8264ffbbc | 61 | data = LPC_UART3->RBR; // Receive data from UART3 RX |
klauss | 109:a5b8264ffbbc | 62 | |
klauss | 109:a5b8264ffbbc | 63 | RXHeadPtr = &data; |
klauss | 109:a5b8264ffbbc | 64 | |
klauss | 109:a5b8264ffbbc | 65 | RXHeadPtr++; |
klauss | 109:a5b8264ffbbc | 66 | move++; |
klauss | 109:a5b8264ffbbc | 67 | |
klauss | 109:a5b8264ffbbc | 68 | if ( RXHeadPtr == (IntBuff+899) ) |
klauss | 109:a5b8264ffbbc | 69 | { |
klauss | 109:a5b8264ffbbc | 70 | RXHeadPtr = IntBuff; |
klauss | 109:a5b8264ffbbc | 71 | } |
klauss | 109:a5b8264ffbbc | 72 | |
klauss | 109:a5b8264ffbbc | 73 | } |
klauss | 109:a5b8264ffbbc | 74 | |
klauss | 109:a5b8264ffbbc | 75 | void RcvRX( void ) { |
klauss | 109:a5b8264ffbbc | 76 | |
klauss | 109:a5b8264ffbbc | 77 | static uint16_t p = 0; |
klauss | 109:a5b8264ffbbc | 78 | static uint8_t data = 0; |
klauss | 109:a5b8264ffbbc | 79 | |
klauss | 109:a5b8264ffbbc | 80 | if ( move ) { |
klauss | 109:a5b8264ffbbc | 81 | |
klauss | 109:a5b8264ffbbc | 82 | data = *RXTailPtr; |
klauss | 109:a5b8264ffbbc | 83 | |
klauss | 109:a5b8264ffbbc | 84 | RXBuffer[p] = data; |
klauss | 109:a5b8264ffbbc | 85 | RXTailPtr++; |
klauss | 109:a5b8264ffbbc | 86 | move--; |
klauss | 109:a5b8264ffbbc | 87 | p++; |
klauss | 109:a5b8264ffbbc | 88 | } |
klauss | 109:a5b8264ffbbc | 89 | |
klauss | 109:a5b8264ffbbc | 90 | if ( RXTailPtr == (IntBuff+899) ) { |
klauss | 109:a5b8264ffbbc | 91 | RXTailPtr = IntBuff; |
klauss | 109:a5b8264ffbbc | 92 | } |
klauss | 109:a5b8264ffbbc | 93 | |
klauss | 109:a5b8264ffbbc | 94 | if ( p == 300 ) { |
klauss | 109:a5b8264ffbbc | 95 | processRX = 1; |
klauss | 109:a5b8264ffbbc | 96 | p = 0; |
klauss | 109:a5b8264ffbbc | 97 | } |
klauss | 109:a5b8264ffbbc | 98 | |
klauss | 109:a5b8264ffbbc | 99 | } |
klauss | 109:a5b8264ffbbc | 100 | */ |