Fabiano.araujo
-
Posts
7 -
Cadastrado em
-
Última visita
Tópicos solucionados
-
O post de Fabiano.araujo em Problema com comunicação serial no PIC18F2550 - UART Receiver Frame error foi marcado como solução
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.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais