Página 1 de 1
serial help

Enviado:
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)

Enviado:
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

Enviado:
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

Enviado:
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

Enviado:
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

Enviado:
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

Enviado:
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ç

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