Página 1 de 1

serial help

MensagemEnviado: 22 Mai 2008 19:22
por anderson
all, estou implementandp comunicaçao serial no pic 16f677
isso estou fazendo usando #use rs232 no ccs

naum consigo fazer que o micro fique parando ate que eu receba algo na serial, por favor me ajude

pensei que fosse assim: dado_rx=getc();
mas ele sai mesmo sem receber nada, como é para ficar nessa instruçao ate que receba algo na serial (essa serial é por soft e naum hard)

MensagemEnviado: 23 Mai 2008 08:06
por fabim
bom se é por soft..
Configure o RB0 com interrupção em borda de descida, e olhe para ele como RX da 232.

No interrupt, voce testa o flag referente a ele.
Foi interrupt /:?
X = getc();

fabim

MensagemEnviado: 23 Mai 2008 08:45
por anderson
sim mas a comunicaçao ja funciona tanto para rx como tx
usei assim: #use rs232(baud=4800, xmit=PIN_A0, rcv=PIN_A1, force_sw)

eu fiz um arranjo mas naum sei se funciona bem

dado_rx=0;
while(!dado_rx){
dado_rx=getc();
}

valew

MensagemEnviado: 23 Mai 2008 08:56
por fabim
da pra escrever em pascal ?rsrs

cara, no init do RS232, configure o RX como RB0, a não ser que queira receber não apenas um byte mais um frame com X bytes.

No pascal
USART_RECEIVE_TEXT(numero bytes, tempo de estouro, string[100]);

Agora essa tranqueira de CCS nem sei como funfa, estou apenas te dando uma idéia.

FAbim

MensagemEnviado: 23 Mai 2008 09:14
por anderson
em pascal sou eu que naum sei, e outra ja estou com uns 80% prontu

sera que alguem manja de GETC();?!?!

gratw

MensagemEnviado: 23 Mai 2008 12:56
por Paulo_P
Veja os exemplos que vem com o C CCS:

>> EX_SISR.C
>> EX_TGETC.C

Ai é só adaptar para seu programa, não tem erro.

Boa sorte,

Paulo
ppap@translate.com.br

MensagemEnviado: 23 Mai 2008 13:34
por ze
amigo que tal se esmiuçasse (1ª vez que escrevo isso!) como que o ccs (éca) gera uma serial por sw? talvez fique + fácil de criar sua própria rotina (otimizada). Ele deve usar o princípio bitbang. Google isso.
Num pode usar um pic com serial de VERDADE?
mas pra ficar parado na função basta "while(RB0)" p.ex. em seguida seu getc(). não aconselho: TRAVA tudo se sem sinal. com interrupt pode ser melhor.
abrç

MensagemEnviado: 23 Mai 2008 14:04
por anderson
blz...deu certo e esse exemplo caiu bem porque tem timeout