voltando a versao de n aberturas e fechamentos de sockets data 19/09

Dependencies:   EthernetInterface NTPClient mbed-rtos mbed EALib

Fork of header_main_publish by VZTECH

UART3Interrupt.cpp

Committer:
klauss
Date:
2014-09-09
Revision:
0:4d17cd9c8f9d

File content as of revision 0:4d17cd9c8f9d:

#include "mbed.h"
#include <stdint.h>
#include "UART3Interrupt.h"
#include "configs.h"

char RXBuffer[DATA_SIZE];                         // UART3 RX Buffer
//volatile uint8_t IntBuff[900];                 // Interrupt Buffer
//static volatile uint8_t *RXHeadPtr;                  // Buffer Head Pointer
//static volatile uint8_t *RXTailPtr;                  // Buffer Tail Pointer 
//static volatile uint16_t move = 0;                       
//uint8_t status = 0;
volatile uint16_t RX_c = 0;   

void SerialRecvInterrupt (void) {                 // UART3 Serial Interrupt Handler
    
    while ( LPC_UART3->LSR & (0<<1) ) {}     
    *(RXBuffer+RX_c) = LPC_UART3->RBR;          // Receive data from UART3 RX
    
    if (RXBuffer[RX_c] != RXBuffer[RX_c-1]) {
       // led3 =!led3;    
    }
    
    RX_c++;
    
    if ( RX_c == 300 )
    { 
       status = 1;
    }
        
}

void RXFrameSync (void) {
    
//    led1 = !led1;
//    led4 = !led4;
    
    RX_c = 0;
    status = 0;
}














/* 
void initRX (void) {
    
RXHeadPtr = IntBuff;     // Initial state
RXHeadPtr = RXTailPtr;    

}

void SerialRecvInterrupt (void)       // UART3 Serial Interrupt Handler
{   
    static uint8_t data = 0;
    while ( LPC_UART3->LSR &= (0<<1) ) {}     
    // *(RXBuffer+idx) = LPC_UART3->RBR;           Receive data from UART3 RX
    
    data = LPC_UART3->RBR;                 // Receive data from UART3 RX
     
    RXHeadPtr = &data;
    
    RXHeadPtr++;
    move++;
    
        if ( RXHeadPtr ==  (IntBuff+899) )
        { 
           RXHeadPtr = IntBuff;
        }
        
}

void RcvRX( void ) {
    
    static uint16_t p = 0;
    static uint8_t data = 0;
    
    if ( move ) {
         
         data = *RXTailPtr;
         
         RXBuffer[p] = data;    
         RXTailPtr++;
         move--;
         p++;
    }
    
    if ( RXTailPtr ==  (IntBuff+899) ) { 
         RXTailPtr = IntBuff;
    }
    
    if ( p == 300 ) {
        processRX = 1;
        p = 0;
    }    
    
}
*/