Autor Tema: RETARDOS mayores a 65536 ms PICBASIC  (Leído 4438 veces)

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

Desconectado beatAurex1

  • PIC12
  • **
  • Mensajes: 78
    • Proyectos de Ingeniera -Control-Electrónica y desarrollo embebido.
RETARDOS mayores a 65536 ms PICBASIC
« en: 30 de Julio de 2006, 17:29:26 »
Hola alguien me podria ayudar y explicar si ahi alguna otra  forma de crear retardos mayores a 65535 ms en PICBasic para no usar varios Delayms, con esto prendo dos motores y se apagan solos ,pero si vuelvo a precionar el boton de encendido no hace caso hasta que acabe el retardo 5min, habia pensado  hacerlo con una interrupcion por timer que siempre estuviera preguntando por PORTD.0 para asi reanudar todo desde inicio,, pero supongo ahi alguna otra forma mas facil de hacerlo.  espero me puedan dar algun tip. GRACIAS

motor1 var portb.0
motor2 var portb.1
              inicio: if PORTD.0=1
                    MOTOR1=1         
             MOTOR2=1
          endif
             DELAYMS 60000
                          DELAYMS 60000
                          DELAYMS 60000
                          DELAYMS 60000
                          DELAYMS 60000
             MOTOR1=0
             MOTOR2=0
                       goto inicio

Digamos lo quiero para prender dos motorcillos

Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #1 en: 30 de Julio de 2006, 21:16:05 »
Hola beatAurex1

Fijate en la ayuda del Protón, buscá en el índice, la función SLEEP.
Es como dice la palabra "poner a dormir todo", en realidad se pone en una especie de STAND-BY

Se utiliza como SLEEP 300

El número que le sigue a SLEEP son los segundos que puede "dormirse", que en el ejemplo que te puse son los 5 minutos que necesitás.

Luego de eso se "despierta" solito y sigue el programa.

Espro que te sirva.

Saludos.

Mario

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #2 en: 31 de Julio de 2006, 17:57:13 »
Hola.

Haber si entiendo:

¿Lo que quieres es que si está corriendo el tiempo, poder interrumpir ese tiempo?

Lo que explicas es algo diferente a lo que tienes en tu tema.

Si es para crear retardos mayores a los 65 segundos, puedes usar FOR y NEXT.

Si quieres hacer otra cosa mientras el tiempo corre, creo que deberás usar las interrupciones. No creo que la del timer sea la idónea, yo usaría la externa de RB0.

Bueno, espero no complicar las cosas.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #3 en: 31 de Julio de 2006, 18:14:25 »
Que tal como estan..

y si utilizas algo como esto:


for x = 0 to 50
delayms 100
if portd.0 = 1 then goto codigo
next x

codigo:
.
.
.
.
.

ojala te sirva

     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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #4 en: 31 de Julio de 2006, 18:18:33 »
Eso sería bueno, se me olvido el IF para preguntar en el ciclo FOR. :D
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado patolinec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 206
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #5 en: 01 de Agosto de 2006, 12:23:33 »
Hola beatAurex1

Fijate en la ayuda del Protón, buscá en el índice, la función SLEEP.
Es como dice la palabra "poner a dormir todo", en realidad se pone en una especie de STAND-BY

Se utiliza como SLEEP 300

El número que le sigue a SLEEP son los segundos que puede "dormirse", que en el ejemplo que te puse son los 5 minutos que necesitás.

Luego de eso se "despierta" solito y sigue el programa.

Espro que te sirva.

Saludos.

Mario


Pues coincido con Mario, la opcion mas efectiva es usar un sleep, e inclusive pudieras hacerlo despertar frente a una interrupcion externa claro solo si es necesario y ojo aca tambien el limite es 65535 pero segundos osea mucho tiempo, tambien es bueno recalcar que cuando el micro esta es modo sleep su consumo de corriente baja muchisimo

suerte
Casi me maté pero ahora estoy de nuevo vivo

Desconectado beatAurex1

  • PIC12
  • **
  • Mensajes: 78
    • Proyectos de Ingeniera -Control-Electrónica y desarrollo embebido.
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #6 en: 02 de Agosto de 2006, 23:19:11 »
GRACIAS A TODOS POR SUS RESPUESTAS ME SIRVIERON MUCHISIMO
ya pude lograr los retardo que queria y al mismo tiempo preguntar por otras condiciones usando for

FOR B=1 TO 1000                ' PARA UNA PAUSA DE 10 SEG  =1000*10ms
   IF SENSOR=1 THEN         
   GOSUB REVELAR                                ENDIF
                 PAUSE 10
NEXT   



Ahora TAlves deberia hacerlo e otro tema peOr lo hare aqui mismo PARA NO ABRIR OTRO TEMA .
COMO HAGO PARA QUE ME MUESTRE LAS TEMPERATURAS REALES EL SENSOR DE TEMEPRATURA LM35
USO EL A/D DEL PIC16F877A

Desconectado beatAurex1

  • PIC12
  • **
  • Mensajes: 78
    • Proyectos de Ingeniera -Control-Electrónica y desarrollo embebido.
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #7 en: 02 de Agosto de 2006, 23:33:29 »
  con su  convertidor de 10bits.  El voltaje de referencia que uso +5v porque estoy usando todos  los AN.(0...7)
y a la salida del lm35  esta un amplificador operacional LM358, con r1=4.7 y R2=10k (multivuelta)

Conversion=5v/1024=4.8mV 
Ya al mostrarlo en el LCD algunos valores de temepratura si conciden con otro termometro digital que uso por separado para  comprobar,, pero de repente se disparan los valores por ejemplo 25°C del lm35=  25°C del digital pero ya despues digamos el digital apenas marca 26 y el LCD ya me esta mostrando hasta 28 o 35°C.

Alguien me podria decir que esta pasando:

GRACIAS 

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #8 en: 03 de Agosto de 2006, 00:29:30 »
HOla mira en este post encontraras mas informacion sobre el lm35dz, buneo no mucha pero si un programa ejemplo que hice con el, hay variables que no se utilizan ya que es para otro programa y se adaptan las rutinas de punto flotante.

http://www.todopic.com.ar/foros/index.php?topic=12300.0
"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 sergiopic

  • PIC10
  • *
  • Mensajes: 31
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #9 en: 10 de Septiembre de 2006, 00:15:08 »
 :mrgreen: hola tal vez puedas usar esta simple rutina


'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 09/09/2006                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
   high portb.0
   pause 1000 * 10 ;como sabemos 1000 milisegundos son 1 segundo asi que
   low portb.0         ;solo lo multiplicas por el numero que creas necesario cualquier
                                              ;numero y tendrasretardos muy grandes

   

saludos desde torreon  coahuila mexico 

si ya hice lo dificil ahora sigue lo imposible

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #10 en: 10 de Septiembre de 2006, 00:43:47 »
Hola:

pues a mi manera de ver eso no es muy acertado, ya que no podrias tener este valor 7000*10, y lo que beatAurex1  es crear retardos mayores a 65535ms. haciendo lo que decia, se produciria desbordamiento.

Desconectado sergiopic

  • PIC10
  • *
  • Mensajes: 31
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #11 en: 12 de Septiembre de 2006, 17:25:25 »
hola lord lafebre claro que  no puedo compararme contigo en
cuestion de micros se que a tienes mucho mas tiempo que yo
y tienes mas tiempo que yo en esta pagina . mil respetos a ustedes programadores dedicados .

pero con respecto ala sujerecia pues ami no me ha causado ningun
problema ya que he en mis primeras experiencias en pbp me acuerdo
que hice un retardo de media hora y no causo desbordamiento
al momeno de compilar con el mpaswin no me mostro nada de
warnings ni nada por el estilo ,solo es un comentario gracias por leer mi sugerencia
y saludos  desde meexico :-/
 

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: RETARDOS mayores a 65536 ms PICBASIC
« Respuesta #12 en: 12 de Septiembre de 2006, 17:53:24 »
Hola:
con respecto a lo primero que mencionas, pues para nada es cierto  :D, yo tambien cada dia que pasa aprendo aqui, pero me extraña eso, la verdad que el maximo valor para una variable es WORD osea 65535 eso en el caso de PBP, por eso cuando digo que haciendo esto 7000*10 se proguciria desbordamiento, claro que el compilador no da errores, pero los errores se deberian dar de una manera logica, es decir el pic no haria lo que uno quisiera que haga.