Autor Tema: pbp y retardos...  (Leído 1835 veces)

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

Desconectado PicLoto

  • PIC10
  • *
  • Mensajes: 1
pbp y retardos...
« en: 13 de Enero de 2006, 09:46:00 »
Hola y gracias por leer el mensaje... bien, a lo que interesa   Sonrisa

Resulta que estoy dandole caña al PBP y mientras probaba el comando COUNT me he encontrado algo muy curioso

(Pic: 16f84A  XT: 4Mhz )

Con el siguiente programa:

B2       var     byte
I          var     byte

           clear
       
loop:   High    0
           pause   1500
           low     0
           count   portb.1,2000,b2
           if      b2=0 then loop
           for     i=0 to b2
           high    0
           pause   50
           low     0
           pause   50
           next    i
           goto    loop
           End

Pues el caso es que  con el PAUSE 1500, el led permanece encendido un segundo y medio...pero con el count 2000, en vez de estar contando durante dos segundos, cuenta durante aproximadamente diez!...y no acabo de comprender la jugada...
Alguien puede echarle un poco de luz a esto?

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
RE: pbp y retardos...
« Respuesta #1 en: 13 de Enero de 2006, 20:37:00 »
hola: bueno amigo dandole una miradita a tu post.
te pido como novatos que somos, tenemos que poner las cosas claras, que uno quiere hacer para los que saben puedan ayudar a uno con mas rapides y entendimiento.

bueno te explico algo

B2 var byte
I var byte

"clear ( para que espesificamentes usas este clear te falta algo mas o no)

loop: High 0
pause 50
low 0
pause 50
count portb.1,2000,b2
if b2=0 then "loop                       ( este loop no va aqui)
for i=0 to b2
high 0  
pause 50
low 0
pause 50
next i
endif         "( y cada if se cierra con un endif amigo)
goto loop
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
RE: pbp y retardos...
« Respuesta #2 en: 17 de Enero de 2006, 20:17:00 »
 B2 var byte                "aki declaras tus variables bien son bytes ok
   I var byte

clear                            "esto tambien esta bien limpias todas las variables a cero

loop:                            "empiezas tu programa

 High 0                         "enciendes el portb.0 durante 1.5 segundos
 pause 1500
 low 0                          " aki lo apagas

count portb.1,2000,b2   " enseguida le das la opcion count, lo k hace esta opcion
                                       " es contar un numero de pulsos en un pin es decir checa                                           " las transisiones de estados bajos a estados altos en                                               " milisegundos, el pin debe ser de entrada, lo hace                                                     " automatiko, entonces tu pin de entrada es PORTB.1                                                 " quieres contar los cambios de EDOS. en 2 segundos y                                              " guardarlo en b2

if b2=0 then loop            " aki si b2 es igual a 0 lo regresas a la primer rutina

                                        " si b2 no cumple casi como un else haces un for                                                         "pensando que b2 es diferente de 0 pero recuerda que b2                                         "esta en funcion de los cambios de tu pin o de los pulsos                                            "que conto si conto 3 pulsos b2=3

for i=0 to b2
  high 0
  pause 50
  low 0
  pause 50
next i
                                          " terminas el for
goto loop
 End                                   " y consumes poka energia con el pic


ok mira debes checar si estas usando bien el count o si le estas mandando pulsos en intervalos adecuados, ahora si los pulsos entran bien verifica cuantos mandaste ya que el for esta en funcion de esos pulsos.

Y si estas usando bien el if ya que hay tres formas la normal condicionando:

IF portb.1=1 THEN
high 3
ENDIF

una especie de goto o gosub

IF a="a" THEN etiqueta
........ etiqueta:
........................

y mas comun IF..ELSE

IF PORT.1 =0 THEN
high 3
ELSE
low 3
ENDIF
"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."


 

anything