TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pikman en 08 de Septiembre de 2003, 15:12:00
-
Hola, esto lo he visto en muchas alarmas pero no encuentro la forma de hacerlo, es realmente bien rebuscado el asunto pues codifica un 1 o un 0 modificando el ancho del bit, que son tres partes de 320 microsegundos la ultima siemrpre es igual solo varia el del medio si es uno o cero, me esta volviendo loco y no puedo sacarlo, alguien me puede tirar una soga.
saludos
Ariel
-
Bueno, no ha sido un exito mi peticion por lo menos aqui en el lenguaje C.
Un colaborador pego un a rutina que esta en PICbasic, y tengo algunas dudas para convertirla a C , es muy corta y hace exactamente lo que yo quiero pero debo incorporarla a un desarrollo que esta todo hecho en C, si se fijan despues de la linea que dice pause US 350 salta hay un goto para saltar un retardo, bueno aqui la dejo si alguien me puede ayudar a traducirla........
gracias
Ariel
PD ; uso el compilador de CCS
receive: " receive mm53200 code
cont = 0 : code = 0 " clear variables
recloopmain:
IF rmt_input=0 Then GoTo recloopmain " input is low? if yes, loop
PauseUs 200 " pulse width - 20
IF rmt_input=0 Then GoTo recloopmain " is still high? if not it was only
noise
PauseUs 350 " pulse width - 200 + 1.5 * pulse width
GoTo receive1
recloop:
PauseUs 440 "pulse width * 2
receive1:
code.12 = rmt_input "level on 53200 pin 1 is lsb!
code = code >> 1 "shift bits
cont = cont + 1 "increments counter
PauseUs 220 "pulse width
IF rmt_input=0 Then "check if high
code = %1111000000000000 "returns an error
Return
EndIF
IF cont <= 11 Then GoTo recloop
Return
-
Bueno, me contesto solo je je, bueno logre finalmente " traducir a C esta rutina hecha en picbasic, pero no funciona correctamente, entonces la traduje a asm que es como sabemos mucho mas corta, y funciona, funciona.
Entonces no se hagan problemas or traducir, ya funciona,
saludos
Ariel