void getsUSART(char *buffer, unsigned char len) { char i; // Length counter unsigned char data; for(i=0;i<len;i++) // Only retrieve len characters { while(!DataRdyUSART());// Wait for data to be received data = getcUART(); // Get a character from the USART // and save in the string *buffer = data; buffer++; // Increment the string pointer } }
void InterruptHandler( void ) { BYTE bTmp; if ( INTCONbits.INT0IF ) { // devo rever se é isso mesmo.... // realiza a leitura do modem bTmp = getcUART( ); ProcessaProtocolo( bTmp ); INTCONbits.INT0IF = 0; } if ( PIR1bits.TMR2IF ) { IncTickCount( ); PIR1bits.TMR2IF = 0; } while ( PIR1bits.RCIF ) { if ( RCSTAbits.FERR ) { //RCSTAbits.FERR = 0; SerialGetchar(); break; } if ( RCSTAbits.OERR ) { //RCSTAbits.OERR = 0; RCSTAbits.CREN ^= 1; Nop(); RCSTAbits.CREN ^= 1; break; } if ( isrSerialFunc ){ bTmp = SerialGetchar(); (*isrSerialFunc)( bTmp ); } } }