Olá pessoal, hoje venho só agradeçer a participação de vocês. o problema foi resolvido graças às informações que passaram. Especialmente essa última do teste man, sobre os fuses, se perceberem no primeiro código que postei não havia configurado os fuses, após a configuração dos mesmos consegui resolver 98% do problema. Precisei adicionar também um delay de 1 ms pois os primeiros caracteres ainda estavam estranhos, com esse delay estabilizou. Segue o código caso outras pessoas tenham o mesmo problema.
#include <18F2550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,PLL4,VREGEN,MCLR,PUT #use delay (clock=20000000) #use RS232(baud=19200, parity=N, bits=8, xmit=PIN_C6,rcv=PIN_C7)
void main() { char x; short valor_anterior_A0 = 1;
while(true) { delay_ms(1); printf("\n\rPIC RS-232\n\r");
while(true) {
if (kbhit()) { x = getchar(); switch(x) { case '1' : output_high(PIN_B6); break; printf("\n\rLed 1 aceso."); case '2' : output_low (PIN_B6); break; printf("\n\rLed 1 Apagado."); case '3' : output_high(PIN_B7); break; printf("\n\rLed 2 aceso."); case '4' : output_low (PIN_B7); break; printf("\n\rLed 2 Apagado."); } } if (input(PIN_A0) != valor_anterior_A0) { if (input(PIN_A0)) printf("\n\rBotao Pressionado."); else printf("\n\rBotao Solto."); valor_anterior_A0 = input(PIN_A0); } } } }
Mais uma vez obrigado a todos.