Autor Tema: Otra de servos  (Leído 6356 veces)

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

Desconectado db25.

  • PIC10
  • *
  • Mensajes: 24
Re: Otra de servos
« Respuesta #15 en: 28 de Mayo de 2007, 05:23:51 »
Hola LordLafebre, a qui tienes la libreria, no recuedo de donde la descargue, ya me comentaras si te funciona¡, Un saludo

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Otra de servos
« Respuesta #16 en: 28 de Mayo de 2007, 11:30:06 »
Hola:

Muchas gracias, ya lo probaré.

Desconectado db25.

  • PIC10
  • *
  • Mensajes: 24
Re: Otra de servos
« Respuesta #17 en: 29 de Mayo de 2007, 14:46:17 »
Bueno ya estoy otra vez aqui. Empecemos de nuevo xD. El comando serin y serout  ¿permiten hacer varias cosas a la vez no? me refiero a mandar mas de una orden   es que lo digo porque en uno de los intentos solo podia encender un led y ya no podia hacer mas (puede ser por el progrma), segundo es mejor utilizar un cristal de 20mhz por el tema de los tiempos y todo eso no.

Gracias y un saludo.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Otra de servos
« Respuesta #18 en: 29 de Mayo de 2007, 15:13:35 »
Serin Serout son comandos para comunicarte via serie pero por software por ende hasta que termines la rutina serin o serout podras hacer algo mas. Para poder hacer otras cosas y seguir mandando datos seriales deberas usar la UART del PIC si es que dispone. para ello en PBP se usa HSERIN y HSEROUT
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado db25.

  • PIC10
  • *
  • Mensajes: 24
Re: Otra de servos
« Respuesta #19 en: 29 de Mayo de 2007, 15:34:12 »
Bueno... mas comandos xD xD y en este caso ¿como funcionarian? ¿de esta forma por ejemplo ¿podria indicar que encienda las luces e indicarle que avance (sin que tenga que apagar las luces)

Gracias y perdonar por lo pesado que soy. Un saludo

Desconectado db25.

  • PIC10
  • *
  • Mensajes: 24
Re: Otra de servos
« Respuesta #20 en: 29 de Mayo de 2007, 18:49:33 »
Hola estoy enredando con el comando pero no me hago con el
 ¿esto estaria bien?
emisor

Código: [Seleccionar]
DEVICE 16F877
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 2400

loop:
if porta.1=0 then
gosub led_on
endif
goto loop

led_on:
hserout [3]
goto loop
end

receptor

Código: [Seleccionar]
DEVICE 16F877
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 2400
datos var byte

loop:
hserin [datos]
if datos=3 then
gosub led_on
endif
goto loop

Led_on:
High porta.1
goto loop
end

estar estar bien fijo que no, pues esta todo el rato el led encendido.
ya me comentareis. Gracias un saludo

Desconectado db25.

  • PIC10
  • *
  • Mensajes: 24
Re: Otra de servos
« Respuesta #21 en: 30 de Mayo de 2007, 11:06:12 »
Bueno he jugueteado un poco mas y he  conseguido que encienda y apague un led con un pulsador :mrgreen: (se pulsa una vez y se enciende y si se pulsa de nuevo se apaga), pero no consigo encender dos led con sus correrpondientes pulsadores.  Os dejo el programa.

EMISOR

Código: [Seleccionar]
DEVICE 16F877
define OSC 20
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_BAUD 9600

Cont var bit

TRISB.0=1
C VAR BYTE
CONT=0

loop:
    IF PORTB.0 = 0 THEN
        while PORTB.0=0
        wend
        cont=cont+1
        if cont > 1 then
            cont=0
        endif
    endif
    select case cont
        case 0
            hserout [1]
        case 1
            hserout [2]
    end select

    IF PORTB.1 = 0 THEN
        while PORTB.1=0
        wend
        cont=cont+1
        if cont > 1 then
            cont=0
        endif
    endif
    select case cont
        case 1
            hserout [3]
        case 0
            hserout [4]
end select
    goto loop
end

RECPTOR

Código: [Seleccionar]
DEVICE 16F877
define OSC 20
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_BAUD 9600
datos var byte
datos2 var byte
loop:
hserin [datos]
if datos=1 then eldc
if datos=2 then aldc
hserin [datos2]
if datos2=3 then ecv
if datos2=4 then acv
goto loop

eldc:
high porta.1
goto loop

aldc:
low porta.1
goto loop

ecv:
high porta.2
goto loop

acv:
low porta.2
goto loop

end
Ya comentareis que puede ser, gracias de antemano y un saludo

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Otra de servos
« Respuesta #22 en: 30 de Mayo de 2007, 11:26:24 »
Rapidamente solo declaras como entrada el PORTB.0 el PORTB.1 nunca lo pones quizas por ahi este el problema. Por otro lado veo un poco raro tu codigo. con eso de los While's si quieres que una sentencia se repita puedes usar el while el if o el repeat solo no necesitas meter uno dentro de otro. Aunque quizas no he entendido bien tu codigo saludos.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."