Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
UART3Interrupt.cpp@74:81c47fff88a5, 2014-11-24 (annotated)
- Committer:
- klauss
- Date:
- Mon Nov 24 16:43:16 2014 +0000
- Revision:
- 74:81c47fff88a5
- Parent:
- 0:4d17cd9c8f9d
- Child:
- 78:1353744f01e1
validando organiza??o de arquivos | ainda em desenvolvimento.
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 | 74:81c47fff88a5 | 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 | 74:81c47fff88a5 | 14 | if( RXBuffer[ RX_c ] != RXBuffer[ RX_c - 1 ] ){ |
klauss | 0:4d17cd9c8f9d | 15 | // led3 =!led3; |
klauss | 0:4d17cd9c8f9d | 16 | } |
klauss | 0:4d17cd9c8f9d | 17 | |
klauss | 0:4d17cd9c8f9d | 18 | RX_c++; |
klauss | 0:4d17cd9c8f9d | 19 | |
klauss | 74:81c47fff88a5 | 20 | if ( RX_c == 300 ){ |
klauss | 74:81c47fff88a5 | 21 | status = __READ__; |
klauss | 0:4d17cd9c8f9d | 22 | } |
klauss | 0:4d17cd9c8f9d | 23 | } |
klauss | 0:4d17cd9c8f9d | 24 | |
klauss | 0:4d17cd9c8f9d | 25 | void RXFrameSync (void) { |
klauss | 0:4d17cd9c8f9d | 26 | RX_c = 0; |
klauss | 74:81c47fff88a5 | 27 | status = __WAITING__; |
klauss | 0:4d17cd9c8f9d | 28 | } |
klauss | 0:4d17cd9c8f9d | 29 | |
klauss | 0:4d17cd9c8f9d | 30 | |
klauss | 0:4d17cd9c8f9d | 31 | |
klauss | 0:4d17cd9c8f9d | 32 | |
klauss | 0:4d17cd9c8f9d | 33 | |
klauss | 0:4d17cd9c8f9d | 34 | |
klauss | 0:4d17cd9c8f9d | 35 | |
klauss | 0:4d17cd9c8f9d | 36 | |
klauss | 0:4d17cd9c8f9d | 37 | |
klauss | 0:4d17cd9c8f9d | 38 | |
klauss | 0:4d17cd9c8f9d | 39 | |
klauss | 0:4d17cd9c8f9d | 40 | |
klauss | 0:4d17cd9c8f9d | 41 | |
klauss | 0:4d17cd9c8f9d | 42 | |
klauss | 0:4d17cd9c8f9d | 43 | /* |
klauss | 0:4d17cd9c8f9d | 44 | void initRX (void) { |
klauss | 0:4d17cd9c8f9d | 45 | |
klauss | 0:4d17cd9c8f9d | 46 | RXHeadPtr = IntBuff; // Initial state |
klauss | 0:4d17cd9c8f9d | 47 | RXHeadPtr = RXTailPtr; |
klauss | 0:4d17cd9c8f9d | 48 | |
klauss | 0:4d17cd9c8f9d | 49 | } |
klauss | 0:4d17cd9c8f9d | 50 | |
klauss | 0:4d17cd9c8f9d | 51 | void SerialRecvInterrupt (void) // UART3 Serial Interrupt Handler |
klauss | 0:4d17cd9c8f9d | 52 | { |
klauss | 0:4d17cd9c8f9d | 53 | static uint8_t data = 0; |
klauss | 0:4d17cd9c8f9d | 54 | while ( LPC_UART3->LSR &= (0<<1) ) {} |
klauss | 0:4d17cd9c8f9d | 55 | // *(RXBuffer+idx) = LPC_UART3->RBR; Receive data from UART3 RX |
klauss | 0:4d17cd9c8f9d | 56 | |
klauss | 0:4d17cd9c8f9d | 57 | data = LPC_UART3->RBR; // Receive data from UART3 RX |
klauss | 0:4d17cd9c8f9d | 58 | |
klauss | 0:4d17cd9c8f9d | 59 | RXHeadPtr = &data; |
klauss | 0:4d17cd9c8f9d | 60 | |
klauss | 0:4d17cd9c8f9d | 61 | RXHeadPtr++; |
klauss | 0:4d17cd9c8f9d | 62 | move++; |
klauss | 0:4d17cd9c8f9d | 63 | |
klauss | 0:4d17cd9c8f9d | 64 | if ( RXHeadPtr == (IntBuff+899) ) |
klauss | 0:4d17cd9c8f9d | 65 | { |
klauss | 0:4d17cd9c8f9d | 66 | RXHeadPtr = IntBuff; |
klauss | 0:4d17cd9c8f9d | 67 | } |
klauss | 0:4d17cd9c8f9d | 68 | |
klauss | 0:4d17cd9c8f9d | 69 | } |
klauss | 0:4d17cd9c8f9d | 70 | |
klauss | 0:4d17cd9c8f9d | 71 | void RcvRX( void ) { |
klauss | 0:4d17cd9c8f9d | 72 | |
klauss | 0:4d17cd9c8f9d | 73 | static uint16_t p = 0; |
klauss | 0:4d17cd9c8f9d | 74 | static uint8_t data = 0; |
klauss | 0:4d17cd9c8f9d | 75 | |
klauss | 0:4d17cd9c8f9d | 76 | if ( move ) { |
klauss | 0:4d17cd9c8f9d | 77 | |
klauss | 0:4d17cd9c8f9d | 78 | data = *RXTailPtr; |
klauss | 0:4d17cd9c8f9d | 79 | |
klauss | 0:4d17cd9c8f9d | 80 | RXBuffer[p] = data; |
klauss | 0:4d17cd9c8f9d | 81 | RXTailPtr++; |
klauss | 0:4d17cd9c8f9d | 82 | move--; |
klauss | 0:4d17cd9c8f9d | 83 | p++; |
klauss | 0:4d17cd9c8f9d | 84 | } |
klauss | 0:4d17cd9c8f9d | 85 | |
klauss | 0:4d17cd9c8f9d | 86 | if ( RXTailPtr == (IntBuff+899) ) { |
klauss | 0:4d17cd9c8f9d | 87 | RXTailPtr = IntBuff; |
klauss | 0:4d17cd9c8f9d | 88 | } |
klauss | 0:4d17cd9c8f9d | 89 | |
klauss | 0:4d17cd9c8f9d | 90 | if ( p == 300 ) { |
klauss | 0:4d17cd9c8f9d | 91 | processRX = 1; |
klauss | 0:4d17cd9c8f9d | 92 | p = 0; |
klauss | 0:4d17cd9c8f9d | 93 | } |
klauss | 0:4d17cd9c8f9d | 94 | |
klauss | 0:4d17cd9c8f9d | 95 | } |
klauss | 0:4d17cd9c8f9d | 96 | */ |