TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: PicLoto en 13 de Enero de 2006, 09:46:00
-
Hola y gracias por leer el mensaje... bien, a lo que interesa

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?
-
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
-
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