Página 1 de 1
Porta Serial
Enviado: 27 Abr 2018 10:17
por Nascimento
algum amigo aqui ja enviou pela serial valores diretamente em hexadecimal?
estou precisando enviar os seguintas valores
0x53|0x80
0x55|0x80
alguem ja enviou coisa desse tipo??
Porta Serial
Enviado: 27 Abr 2018 11:18
por Kapiaba
Desculpe, não entendi, explique melhor. Usei muito, mas para pegar o Código de Barras dos produtos em mercadinhos. Usei a HBCOMM.LIB.
https://pctoledo.org/forum/viewto ... f=4&t=8412
https://pctoledo.org/forum/viewto ... f=4&t=7778
Porta Serial
Enviado: 28 Abr 2018 01:09
por Nascimento
programo em clipper/harbour a vários anos , mais também sou técnico em eletrônica, nesses dias recebi um equipamento
que precisa de um soft para comunicar com ele, e o protocolo que o cara me mandou foi esse:
acionar motor = 0x53
desligar motor = 0x53|0x80
acionar solenoide = 0x54
desligar solenoide = 0x54|0x80
entre outros comandos mais todos seguindo essa regra
com o |0x80 desliga
eu sei que o |0x80 seta o bit 7
como sabemos um hexadecimal é um valor em binário nesses em questão são de 8 bits ou 1 byte
se fosse de 1 microcontrolador para outro eu enviaria tranquilamente , mais não sei ainda como fazer no harbour
tenho um pouco mais de intimidade com a hbct, mais se conseguise um exemplo com a hbcom funcional pra mim seria otimo!
Porta Serial
Enviado: 30 Abr 2018 12:47
por alaminojunior
Boa tarde !
Não entendo quase nada desse negócio de hexadecimal, mas com as funções de conversão do xHarbour não seria possível ?
A função abaixo é da HbComm.
Código: Selecionar todos
Function pegapeso
Local bHandle, string:=chr(5), bytes, buffer, q, tenta:= 0
Private dados
bal_marca = "TOLEDO"
bal_porta = "COM1"
bal_veloc = "9600"
string = HexToSTr( <valor hexadecimal> ) // precisaria converter o seu valor hexa com HexToSTr( <valor hexadecimal> )
do while .t.
bhandle:= Init_Port(bal_porta,val(bal_veloc),8,0,1,8000)
OutBufClr(bhandle) // Limpa o Buffer de Saida
OUTCHR(bhandle,string)
millisec(250)
bytes:= InbufSize(bhandle)
dados:= SPACE(20)
buffer:= InChr( bhandle, Bytes, @DADOS)
UnInt_Port(bhandle)
dados = subs(alltrim(dados),2,5)
if dados = "IIIII"
millisec(250)
tenta ++
if tenta > 8
return -1
endif
loop
elseif dados = "SSSSS"
return -2
elseif dados = "NNNNN"
return -3
endif
q = val(dados)/1000
if q = 0
return -4
endif
exit
enddo
return q
Perdão pelo tratamento dos retornos que eu não editei, mas eu lido com balanças rsrsrsrs.
Mas creio que o caminho seja por aí.
Porta Serial
Enviado: 03 Mai 2018 13:20
por Nascimento
tudo tranquilo, o problema é que tem que entender um pouco de eletronica mais precisamente na parte de microcontroladores
estou com o codigo do rx " o codigo escrito para o microcontrolador alvo" o que esta me encucando é como enviar marcando o bit 7 rsrs
exatamente isso 0x53|0x80 "dessa forma marco o bit 7"
de microcontrolador para microcontrolador consigo normalmente agora ja com o harbour estou levando couro
Porta Serial
Enviado: 03 Mai 2018 16:06
por Claudio Soto
No entendí muy bien lo que necesitas pero esto 0x53|0x80 en Hb es equivalente a
hb_bitOR (0x53,0x80)