Autor Tema: PULSIN Y PULSOUT  (Leído 2654 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Alfabit

  • PIC10
  • *
  • Mensajes: 13
PULSIN Y PULSOUT
« en: 09 de Julio de 2005, 09:35:00 »
Buenas, estoy programando en picbasic pro, y necesito emitir pulsos y tb recibir pulsos, para emitir un pulso de 200ms coloco lo siguiente:
pulsout portb.0,200
esto para mi seria un uno ya que un pulso de 200ms vale uno, pero como hago si quiero enviar dos unos seguidos? (11).
Tambien quisiera saber como envio ceros (si mal no reucerdo los ceros pueden ser un pulso de por ejemplo 100ms).
Con respecto a la lectura con pulsin, recibo la duracion de un pulso, pero quisiera no saber la duracion si no el valor binario (110010101) etc, por ejemplo si recibo un pulso de 200ms reconocerlo como uno si  recibo un pulso de 100ms reconocerlo como cero, pero el caso es como reconocer cadenas seguidas de unos o ceros, osea si recibo dos pulsos seguidos de 200ms seria 11, (seria un pulso de 400ms).
Gracias, un saludo desde Venezuela.

Desconectado Artifox

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 455
    • Quadbot
RE: PULSIN Y PULSOUT
« Respuesta #1 en: 09 de Julio de 2005, 09:53:00 »
Hola Rebotado, en lo que te puedo ayudar un poco es en la recepcion de pulsos, pues yo hice algo parecido para decodificar las señales que venian de un control remoto de televisor, la unica diferencia que habia es que los 1"s y 0"s son pulsos en alto de 1.7ms y 0.5ms respectivamente.

Por ejemplo para recibir la data 1001 recibia lo siguiente: estado inicial 0v, pulso en alto de 1.7ms (1), pulso en bajo de 0.3ms,pulso en alto de 0.5ms(0),pulso en bajo de 0.3ms,pulso en alto de 0.5ms(0),pulso en bajo de 0.3ms, pulso en alto de 1.7ms(1).... De esa manera mas o menos venian los pulsos, para lo cual yo recibia de esta manera:

Id_Datos:  
    pulsin porta.4,1,time
    select case time
        case 30,31,32,33,34,35,36,37,38,39,40
            estado=0
        case 140,141,142,143,144,145,146,147,148,149,150
            estado=1
    end select
    tmp.0=estado
    tmp=tmp<<(counter-1)
    dato=dato+tmp
    counter=counter-1
    return
Esta funcion lo que hacia es detectar el bit que estaba llegando, para ello tenia una variable "counter" que me decia que # de bit estaba llegando, una variable "tmp" y una variable de almacenamiento "dato" que era la variable de salida esto lo hacia 8 veces para capturar un byte, luego de eso ya venia la etapa de verificacion....

Bueno, espero haberte aclarado un poco las ideas, de repente la forma de enviar los datos lo puedes hacer de una manera parecida....

Un abrazo desde Peru Fumador
Video Quadbot
Saludos desde mi querido Perú.
Si realmente queremos que el mundo cambie debemos empezar por nosotros mismos... ;)

Desconectado Alfabit

  • PIC10
  • *
  • Mensajes: 13
RE: PULSIN Y PULSOUT
« Respuesta #2 en: 09 de Julio de 2005, 10:04:00 »
Muxas Gracias.


 

anything