Autor Tema: problem secuenciales  (Leído 4249 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado liminix

  • PIC12
  • **
  • Mensajes: 58
problem secuenciales
« en: 20 de Julio de 2006, 23:48:50 »
hola  amix ,  bueno  mi  problema  esta  en  que quisiera  modificar  la  frecuencia  en  que  prenden  los   leds
pero  no  me  sale   es cuando   pulso  no  me   sale  escala  que  necesito,  es  para  hacer  un  juego  de  luces


trisa=1
trisb=0
j var byte
led1 var portb.0
led2 var portb.1
inicio:

if porta.2=0 then
j=j+100
endif
if J=1000 then
J=100
endif

high led1
pause j
low led1
pause  j


high led2
pause j
low led2
pause j
goto inicio

  aver  si  me  dan  un  sajiros mis  estimados amigos

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: problem secuenciales
« Respuesta #1 en: 21 de Julio de 2006, 00:13:35 »
Hola:

El problema que veo es que declaras J como variabl de tipo byte, que es solo de 0 a 255 valores, declarala de tipo word, con eso consigues valores de 0 a 65535. tambien prueba inicializando j con algun valor, por ejemplo j=1 o el valor que creas conveniente segun tu necesidad.

Suerte.

Desconectado liminix

  • PIC12
  • **
  • Mensajes: 58
Re: problem secuenciales
« Respuesta #2 en: 28 de Julio de 2006, 12:15:05 »
hola  hice lo  que  me recomendantes pero no  me  controlan  bien cuando  pulso, quisiera saber  si  se  puede  modificar  el  programa  para  hacer  que  funcione

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: problem secuenciales
« Respuesta #3 en: 28 de Julio de 2006, 12:53:55 »
Hola:

Como quieres que se vayan encendiendo los leds, cuál es la idea?

Desconectado liminix

  • PIC12
  • **
  • Mensajes: 58
Re: problem secuenciales
« Respuesta #4 en: 01 de Agosto de 2006, 23:15:59 »
hola   doc  bueno  primero  son  los  saludos hola, mi  problem  es que quiero  que  me  modifiquen  los  tiempos que  estan  encendidos osea  la  velocidad que  parpadean
con  los  pulsadores
gracias tio, por  tu  ayuda

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: problem secuenciales
« Respuesta #5 en: 02 de Agosto de 2006, 00:15:29 »
Hola:

No enciendas individualmente los leds asi:

high led1
pause j
low led1
pause  j


high led2
pause j
low led2
pause j
goto inicio

como veras habra porblemas, ya que al utilizar pause se genera un bucle y el pic no hara nada, ademas siendo j la variable para el retardo enconces no veo o no tengo claro que quieres hacer, lo que consegiurias con eso es que primero se encienda el un led y luego el otro, y vayan parpadeando indibidualmente, si los quieres hacer parpadear simultaneamente asigna al puerto el valor para que se encienda el port b0 y b1, si lo que quieres hacer es que los leds se enciendan a diferentes frecuencias, eso ya es otra cosa.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: problem secuenciales
« Respuesta #6 en: 02 de Agosto de 2006, 08:29:08 »
Hola!
Podes ahorrar un "poquito" de la memoria disponible si en lugar de
Citar
if porta.2=0 then
j=j+100
endif
if J=1000 then
J=100
endif

Haces:
--------------------------
if porta.2=0 then
j=j+1
endif
if J=10 then
J=1
endif
--------------------------

Hace exactamente lo mismo desde el punto de vista logico del programa, y con una variable Byte te alcanza. En este caso es una pavada, por que ahorraras un par de bytes de memoria y unos microsegundos de ejecucion (suponiendo que lleve mas tiempo sumar word que byte), pero si el programa es mas grande, esos pocos bytes ahorrados pueden ser la diferencia entre que entre o no en la memoria del PIC... :mrgreen:


Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado liminix

  • PIC12
  • **
  • Mensajes: 58
Re: problem secuenciales
« Respuesta #7 en: 04 de Agosto de 2006, 19:52:10 »
Hola:

No enciendas individualmente los leds asi:

high led1
pause j
low led1
pause  j


high led2
pause j
low led2
pause j
goto inicio

como veras habra porblemas, ya que al utilizar pause se genera un bucle y el pic no hara nada, ademas siendo j la variable para el retardo enconces no veo o no tengo claro que quieres hacer, lo que consegiurias con eso es que primero se encienda el un led y luego el otro, y vayan parpadeando indibidualmente, si los quieres hacer parpadear simultaneamente asigna al puerto el valor para que se encienda el port b0 y b1, si lo que quieres hacer es que los leds se enciendan a diferentes frecuencias, eso ya es otra cosa.

hola  lo  que  quiero  hacer   unos  secuenciales pero , porder   regular  la  intermitencia  del  encendido osea  que  enciendan  uno  detras  de  orto  pero   quisiera  poder  regula  la  frecuencia  del  encendido

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: problem secuenciales
« Respuesta #8 en: 05 de Agosto de 2006, 21:06:48 »
Hola Liminix!

Segun veo en tu listado, lo que determina la "frecuencia" de encendido, o mejor dicho, el tiempo que transcurre entre que uno se enciende, se apaga y pasa al siguiente es el valor de la variable J. Con valores mas grandes, tiempos mayores, y viceversa.

Viendo tu listado original, quizas deberias poner los dos "bloques" que encienden y apagan lso leds dentro del bucle que modifica el valor de J....igualmente, no tengo muy claro que es lo que quieres hacer.....salvo lo de que 
Citar
que  enciendan  uno  detras  de  orto
....ja ja ja!

No te enojes, es un chiste nomas.

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado liminix

  • PIC12
  • **
  • Mensajes: 58
Re: problem secuenciales
« Respuesta #9 en: 26 de Septiembre de 2006, 12:47:53 »
Hola:

No enciendas individualmente los leds asi:

high led1
pause j
low led1
pause  j


high led2
pause j
low led2
pause j
goto inicio

como veras habra porblemas, ya que al utilizar pause se genera un bucle y el pic no hara nada, ademas siendo j la variable para el retardo enconces no veo o no tengo claro que quieres hacer, lo que consegiurias con eso es que primero se encienda el un led y luego el otro, y vayan parpadeando indibidualmente, si los quieres hacer parpadear simultaneamente asigna al puerto el valor para que se encienda el port b0 y b1, si lo que quieres hacer es que los leds se enciendan a diferentes frecuencias, eso ya es otra cosa.

hola  lo  que  quiero  hacer   unos  secuenciales pero , porder   regular  la  intermitencia  del  encendido osea  que  enciendan  uno  detras  de  orto  pero   quisiera  poder  regula  la  frecuencia  del  encendido

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: problem secuenciales
« Respuesta #10 en: 26 de Septiembre de 2006, 14:16:39 »
Segun entiendo quieres variar la velocidad de encendido de los leds. mira aqui te dejo un ejemplo espero te sirva o sea parecido a lo que busques

Código: ASM
  1. '****************************************************************
  2. '*  Name    : CORRIDO.PBP                                       *
  3. '*  Author  : Max Eduardo Reyes Vera Juarez                     *
  4. '*  Notice  : Copyright (c) 2006 Protegido Por  leyes de Autor  *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 26/09/2006                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************
  11.  
  12. TRISA = 3
  13.  
  14. MAS   VAR PORTA.0
  15. MENOS VAR PORTA.1
  16.  
  17. C VAR BYTE
  18. I VAR WORD
  19.  
  20. I = 1000
  21.  
  22. INICIO:
  23.  
  24.   IF MAS=1 OR MENOS =1 THEN CTRL
  25.  
  26.  FOR C = 0 TO 7
  27.   HIGH C
  28.   PAUSE I
  29.   LOW C
  30.   PAUSE I
  31.   IF MAS=1 OR MENOS =1 THEN CTRL
  32.  NEXT C
  33. GOTO INICIO  
  34.  
  35.  
  36.  CTRL:
  37.  IF MAS = 1 THEN
  38.   PAUSE 50
  39.    IF MAS = 1 THEN   ' REDUCIR VELOCIDAD
  40.    I = I + 200
  41.   ENDIF
  42. ENDIF
  43.  
  44. IF MENOS = 1 THEN
  45.  PAUSE 50
  46.   IF MENOS = 1 THEN   ' AUMENTAR VELOCIDAD
  47.     I = I - 200
  48.    ENDIF
  49.  ENDIF
  50.      
  51.  IF I >= 1600 THEN        ' LIMITE MINIMO DE VELOCIDAD 1.6 S
  52.  I = 200
  53. ENDIF
  54.  
  55. IF i < 200 THEN          ' LIMITE MAXIMO DE VELOCIDAD 200 mS
  56.   i = 1600
  57.  ENDIF
  58. GOTO INICIO




porfin encontre un geshi que se lea bien
"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 liminix

  • PIC12
  • **
  • Mensajes: 58
Re: problem secuenciales
« Respuesta #11 en: 20 de Octubre de 2006, 19:39:23 »
hola  lo he  probado,no  resulta quisiera  que  me des  una  explicacion  del  programa para  ver  en  que  le  corrigo  para  que  me  resulte
es  cuando  le  mido  el   voltaje  en  las  entradas se  chupa osea se  va a  cero  voltios  sin  presionar debe  ser alguna  falla seguro

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: problem secuenciales
« Respuesta #12 en: 20 de Octubre de 2006, 20:23:02 »
Hola muchach@s...

Creo que lo que nuestro amigo solicita se puede resumir en PWM y creo que pbp no maneja bien varios  PWM al mismo tiempo pero creo que si alguien sabe de programacion en C podia traducir lo que se comenta en los suientes hilos....

http://www.todopic.com.ar/foros/index.php?topic=4740.0
http://www.todopic.com.ar/foros/index.php?topic=14104.0

Seria estupendo si en PBP se podria hacer algo como se puede hacer en C.......habra que practicar mucho mas...

Suerte..


Salu2
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: problem secuenciales
« Respuesta #13 en: 20 de Octubre de 2006, 22:32:56 »
mmm no creo que sea un PWM. Y con respecto al programa si funciona yo lo probe y fisicamente lo que hace es simplemente prender no a uno todos los puertos del PORTB y puedes aumentar o disminuir la velocidad del encendido con limites de 1.6 Segundos y 200mS, por default empieza con 1 segundo, checa que lo conectes con el cristal de 4mhz y una resistencia de 10K en mclr a vdd
"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 liminix

  • PIC12
  • **
  • Mensajes: 58
Re: problem secuenciales
« Respuesta #14 en: 26 de Octubre de 2006, 23:16:09 »
lo  voy  revisar  como dices  amigo,pero  que  pasaria  si  en  ves de  que esperen un  1logico sea  un cero tendria  que  modificar solo  la  parte donde estan  los  IF NO?
MAS=0
MENOS=0
HE ESTADO REVISANDO TU PROGRAMA Y  NO  ENTIENDO ,COMO HACE ENCERDER LOS LEDS  DEL  PORTB,ME PODRIAS DAR  UNA PEQUENA EXPLICACION GRACIAS POR APOYO AMIX
HA VERDA UNA PREGUNTITA QUE PROGRAMA USAS  PARA POSTEAR  LOS  CIRCUITOS
« Última modificación: 26 de Octubre de 2006, 23:22:54 por liminix »


 

anything