Autor Tema: FRUSTRACIONES CON BAISC  (Leído 2146 veces)

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

Desconectado bobinin

  • PIC10
  • *
  • Mensajes: 18
FRUSTRACIONES CON BAISC
« en: 14 de Marzo de 2006, 17:00:00 »
programacion en basic

hola a todos !!!

soy un novato que neseita de ayuda de mas habiles en la materia....

he estado tratando de hacer un programa donde donde al presionar porta.1 aumento pause a 100u +

porta.2 resto 100u

z seria la cantidad de veces que se repite

lo carge al pic del proteus y la verdad es que no funciona como quiero....

aka les dejo el codigo para que me digan lo malo que ten y para APRENDER masVacilandoVacilandoVacilando
porfa diganme todo lo malo y como puedo solucionarlo

Codigo:



x  var bit

a  var bit

z  var bit

let  z=100

let  a= 300

      inicio:

        if porta.0=1 then

        goto led

        endif

       
       
       
        led:

            if porta.1=1 then a=a+100

           
           
            if porta.2=1 then a=a-100

       
            if porta.3 =1 then z=z+100

           
            for x = 1 to z

                    high portb.0

                    pause a

                    low portb.0

                    next x

              if porta.4=1 then goto inicio

             goto led

             
             end    

Desconectado doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1534
RE: FRUSTRACIONES CON BAISC
« Respuesta #1 en: 14 de Marzo de 2006, 17:56:00 »
Hola

exactamente que querés hacer? por que no entiendo!!! explica mejor..

saludos
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: FRUSTRACIONES CON BAISC
« Respuesta #2 en: 14 de Marzo de 2006, 18:05:00 »
Según entiendo por la explicacion se desea un retardo variable en escalas de 100 useg,  para lo cual hay dos pulsadores, PortA.1 y PortA.2.   Pero por el código estoy bastante confundido.

No se que quieres hacer exactamente pero las variables (a, z, x) las tienes declaradas de tipo bit (solo pueden tener 2 valores, 0 ó 1) y le pones alegremente variaciones de 100 puntos.


Un saludo.

Saludos desde Logroño (España)

Desconectado bobinin

  • PIC10
  • *
  • Mensajes: 18
RE: FRUSTRACIONES CON BAISC
« Respuesta #3 en: 14 de Marzo de 2006, 18:10:00 »
se trata de 2 variables a y z

para la variable "a" quiero que cuando porta este en alto a la variable "a" se le sume 100
 lo mismo quiero para la variable "z"


Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: FRUSTRACIONES CON BAISC
« Respuesta #4 en: 14 de Marzo de 2006, 19:43:00 »
Empieza cambiando:

x var bit

a var bit

z var bit


por

x var word

a var word

z var word
Saludos desde Logroño (España)

Desconectado bobinin

  • PIC10
  • *
  • Mensajes: 18
RE: FRUSTRACIONES CON BAISC
« Respuesta #5 en: 15 de Marzo de 2006, 16:17:00 »
ok lo hice y haora funciona grax...
me podrias de cir las diferenciasn entre VAR WORD,BYTE Y BIT????

el problema haora es que al sumarle un 1 a la variable A que lo tengo como  tiempo de pause, al  presionarlo 1 vez se queda pegado el led y debiera sumar 10 lo que sigmifica 10u seg de pause......en k estoy ekivokado???

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: FRUSTRACIONES CON BAISC
« Respuesta #6 en: 15 de Marzo de 2006, 17:43:00 »
uhhhm, mal rollo, eh,  esto es lo primero que deberías saber Muchas risas Muchas risas


bit -> dos posibles valores (0, 1)
byte -> (0 .. 255)
word -> (0.. 65535)

etc.

deberias leer un poco sobre el tema antes de seguir, esto es demasiado básico como para no saberlo.

Un saludo.

Saludos desde Logroño (España)

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: FRUSTRACIONES CON BAISC
« Respuesta #7 en: 15 de Marzo de 2006, 17:58:00 »
Codigo:
let z=100

let  no hace falta ponerlo.

Codigo:
inicio:

if porta.0=1 then
goto led
endif

led:

Te sobran las lineas entre inicio: y led:, a fin de cuentas da igual el estado de porta.0 porque acabaremos en led:


Deberias poner el esquema de proteus tambien, de todas formas yo empezaria poniendo un simple led y algo como:

high portb.0   ; led entre portb.0 y 0V  activado
pause 2000   ; espera 2 segundos
low portb.0    ; apaga led

e ir avanzando, por que el proteus por si solo ya tiene sus cositas raras.

Un saludo.
Saludos desde Logroño (España)

Desconectado bobinin

  • PIC10
  • *
  • Mensajes: 18
RE: FRUSTRACIONES CON BAISC
« Respuesta #8 en: 15 de Marzo de 2006, 19:12:00 »
ok grax por las sugerencias pero no me has respondido la pregunta......

como lo puedo hacer para que cadavez que presione un boton le sume a la variable A 10u y  y k este se refleje en pause????

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: FRUSTRACIONES CON BAISC
« Respuesta #9 en: 16 de Marzo de 2006, 09:19:00 »
No se si te explicas mal o soy yo que no te entiendo, pero ya tienes un boton que modifica el valor de a, lo que quieres es que con cualquier otro sume 10 a parte de lo que ya hagan de por sí??

Antes de nada, cuando dices aumentar/disminuir PAUSE 100u  te refieres a unidades o microsegundos xq indicarte que PAUSE es para periodos hasta 65535 milisegundos
y PAUSEUS trabaja en microsegundos.
Saludos desde Logroño (España)

Desconectado doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1534
RE: FRUSTRACIONES CON BAISC
« Respuesta #10 en: 16 de Marzo de 2006, 11:29:00 »
Hola Sonrisa
Te dejo un ejemplo en proton para que veas el funcionamiento, lo podés hacer asi o lo podés hacer con un IF... basicamente es lo mismo que PBP pero tenés que cambiar algunas definiciones de variables.-
El tiempo lo puse en Ms y se va incrementando de a 250 ms osea 1/4 de seg. por cada vez que oprimas el botón.... todos estos valores son para que se pueda apreciar el funcionamiento vos lo podés adecuar a los tiempos que te convengan... espero que te sirva!!

saludos

cualquier duda pregunta!!

Codigo:
"****************************************************************
"*  Name    : cambiar el valor de pausa con boton               *
"*  Date    : 16/03/2006                                        *
"*  Notes   :  Doppel 2006 - ejemplo para todopic               *
"*          :                                                   *
"****************************************************************
device 16f84a
xtal 4
dim sumar as word   "defino variables
dim suma as word
dim buffer_boton as byte  " buffer usado por el comando button
symbol boton = portb.0     "defino boton en el puerto PORTB.0
symbol led = Portb.1       "defino LED en el puerto PORTB.1
trisb = %00000001         "defino entrada de boton y todas salidas
portb = 0                 " pongo el puerto a "0"
suma = 0                  "arranco con el contador a "0"
inicio:
        delayms 10
        BUTTON  boton,0,40,5,Buffer_boton,1,programa    " si se presiona boton salta
        goto inicio                                      "a la etiqueta programa
       
programa:
          sumar = 500          " asigno 500 a sumar
          suma = suma + sumar   " acumulo de a 500 ms
          high led             " enciendo el led
          delayms suma          " hago la pause del contador
          low led               " apago el led
          goto inicio           "vuelvo a inicio y espera que se oprima el boton de nuevo
end



simulación en proteus

" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado bobinin

  • PIC10
  • *
  • Mensajes: 18
RE: FRUSTRACIONES CON BAISC
« Respuesta #11 en: 17 de Marzo de 2006, 17:12:00 »
grax por responder doppel y gracias a ti pude aprender un poko + VacilandoVacilandoVacilando

haora me surge una duda, le puse ademas de aumentar pause atravez del boton un contador binario k muestra cuantas veces he precionado el boton pero....... como lo puedo hacer para que lo muestrae en un dispaly ?? o mejor dicho como son las combinaciones para crear los numeros en el display???

hay te dejo el programa que hice.....RebotadoRebotadoRebotado

Codigo:
TRISA=0    
       define OSC 4
       b var bit
       a var word
     
       led var portb.0
     PORTB=%00001
       c con 200
       d var byte
       i var byte
"--------------------------------
       in:
       if portb.7=1 then  "si mamtengo presionado el boton no sigue contando
       goto in             " solo cuenta pulso si mantengo el boton
       else
       goto inicio
       endif
"--------------------------------      
      inicio:
      if portb.7 =1 then " inicia el prog
    goto suma
      else
      goto inicio
      endif                    
  "---------------------------    
      suma:                   " suma   200 miliSEG a pause
     
      a=(a+c)
   
      goto ya
 "------------------------------    
      ya:
       high led             " prende el led con la pusa correspondiente
      pause   a
      low   led  
     
     
   
 "------------------
for i=0 to d       " entrega el numero de pulsaciones en binario
PORTA=i

next i
d=d+1

"---------------------    
     
   goto in              " vuelve a inicio
 "----------------------------    
 
 
 END


saludos

Desconectado doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1534
RE: FRUSTRACIONES CON BAISC
« Respuesta #12 en: 17 de Marzo de 2006, 19:47:00 »
Hola, me alegro que te haya servido, si querés aprender un poco más y ver distintos ejemplos de contadores y display  fijate en este link...hay muchos ejemplos que te pueden servir.-

http://miarroba.com/foros/ver.php?foroid=382961&temaid=4270632

saludos   Sonrisa

 
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "


 

anything