Autor Tema: ayuda con programa pbp  (Leído 3171 veces)

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

Desconectado gerard07

  • PIC10
  • *
  • Mensajes: 5
ayuda con programa pbp
« en: 18 de Diciembre de 2009, 12:43:26 »
hola gente: podria alguno corregirme este progama? y decirme porque no funciona cuando lo armo en la proctoboard?, el objetivo es que con un mismo pulsador NA pueda encender un led y apagarlo (osea pulso enciende, pulso apago), estoy trabajando con un pic 16f84a

trisb=%0
trisa=%1
i var WORD
r var WORD
i=1
r=0
loop:
     if (porta.0=1) then
       i=i+1                     
       r=i//2
       if (r=0) then
          high portb.0
       else
          low portb.0
       endif
     endif
     goto loop     
end

como veran lo que hago es preguntar si es par o impar con un simple contador en realidad, teniendo el primer pulso como par (cuando enciende) y si es impar apaga
 desde ya muchisimas gracias
                                                        gerard07
pd, si tienen otro mejor manden nomas

Desconectado doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1534
Re: ayuda con programa pbp
« Respuesta #1 en: 18 de Diciembre de 2009, 13:36:20 »
Hola

salvo que quieras utilizar ese método, seria mucho mas sencillo si utilizas TOGGLE para cambiar el estado del pin, además revisa la configuracion de los tris que está incompleta, debes agregar los 0' y 1' que faltan

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

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: ayuda con programa pbp
« Respuesta #2 en: 18 de Diciembre de 2009, 14:45:34 »
trisb=%0 = %00000000
trisa=%1 = %00000001
Cada digito equivale a un pin distinto, si lo tuviste en cuenta no pasa nada.

Y parece que no tuviste en cuenta que cada vez que pulsas la tecla, la rutina se te repetirá un numero indeterminado de veces, por lo que el resultado de la salida será aleatorio. Tendrías que idearte un sistema para generar una pausa después de cada pulsación.
« Última modificación: 18 de Diciembre de 2009, 14:48:14 por dogflu66 »
Saludos desde Granada, España.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: ayuda con programa pbp
« Respuesta #3 en: 18 de Diciembre de 2009, 15:15:55 »
Hola:
No soy muy ducho con pbp y no sé si solo has puesto el codigo para cambiar el led
Pero ¿no hace falta indicar el tipo de micro a utilizar y la velocidad del cristal?
¿No falta tambien decir que los puertos (dependendo del micro) hay que configurarlos como digital o analogicos?

Fer.
Todos los días se aprende algo nuevo.

Desconectado gerard07

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con programa pbp
« Respuesta #4 en: 18 de Diciembre de 2009, 15:47:46 »
doppel: podrias orientarme en el uso del toggle?
           de que manera podría usarlo en el programa?
            :(

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: ayuda con programa pbp
« Respuesta #5 en: 18 de Diciembre de 2009, 17:30:30 »
Hola a todos  :).
Hernan con tu permiso  ;-).
Gerard esto es lo que dice el Manual de PBP:

TOGGLE Pin
Invierte el estado del Pin especificado . Pin es automáticamente colocado como salida . Pin puede ser una constante , 0 - 15 , ó una variable que contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0)

Low 0 ´ comienza Pin0 como bajo

TOGGLE 0 ´ cambia a alto el estado del pin 0

Para tu codigo

Código: Visual Basic
  1. Low portb.0
  2. loop:
  3.      if (porta.0=1) then
  4.           toggle portb.0
  5.           '''pero en este punto debes ponerle un antirebote
  6.          '''para ti que estas comenzando seria con una pausa de 20 ms
  7.          pause 20
  8.      endif
  9. goto loop

Saludos Navideños.
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 doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1534
Re: ayuda con programa pbp
« Respuesta #6 en: 18 de Diciembre de 2009, 23:39:18 »
gracias Kallitos!!  ;-) a eso me referia!
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado gerard07

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con programa pbp
« Respuesta #7 en: 19 de Diciembre de 2009, 17:26:55 »
gracias ahora lo pruebo y les comento como anda

Desconectado gerard07

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con programa pbp
« Respuesta #8 en: 21 de Diciembre de 2009, 00:13:48 »
 :-/  :-/  :-/ solucionado!!
                gracias muchachos, no conocia el toggle, pero una cosa más le tuve que dar un tiempo de 500ms y con eso aduvo bien, porque con menos tiempo tenia problemas con el rebote
                saludos y gracias!!

                                           gerard07

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: ayuda con programa pbp
« Respuesta #9 en: 21 de Diciembre de 2009, 01:44:43 »
Hola gerard07, que bueno que creas que lo has solucionado  :mrgreen:, la verdad que un antirebote con pause no es muy recomendable si tienes un programa critico en tiempos, io trabajo asi:
Código: Visual Basic
  1. flag_tecla var bit
  2. flag_timer var bit
  3.  
  4. if((porta.0 = 0) and(flag_tecla = 1) then
  5.       flag_tecla = 0;
  6.       'seteo el timer0 a 5ms
  7.      'y hago lo que quiero con la pulsacion
  8.      toggle portb.0
  9. endif
  10.  
  11. if (flag_timer = 1) then
  12.    flag_timer = 0;
  13.    if (porta.0 = 1) then
  14.       flag_tecla = 1
  15.    endif
  16. endif
  17.  
  18. y en la interrupcion del timer seteo flag_timer = 1

Asi trabajo los antirebotes, me funciona a la perfeccion, ademas me permite hacer algo parecido al lo del teclado de la pc, presionar y ejecutar codigo, si keda presionado ejecutar codigo cada cierto tiempo: 200ms por ejm.

Saludos
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: ayuda con programa pbp
« Respuesta #10 en: 21 de Diciembre de 2009, 04:15:41 »
Si no recuerdo mal existe una función que se llama Button, revíselo.
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