TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: aitopes en 21 de Mayo de 2008, 14:18:24

Título: Guardar tren pulsos vector
Publicado por: aitopes en 21 de Mayo de 2008, 14:18:24
Hola amigos!
Este es un mensaje del amigo aGuillo (http://www.todopic.com.ar/foros/index.php?action=profile;u=11477), a ver si alguien puede ayudarlo. Me parecio oportuno postearlo aqui asi la respuesta sirve tambien a otros usuarios.



Tengo una serie de pulsos que entran a un puerto del PIC, estoy tratando de guardar estos pulsos en un vector para despues utilizar este vector para hacer un contador. pero me he quedado un poco corto. no se si ud me pueda echar una manito.

he intendato algo asi:

TRISD = %11111111

Dim almacen(50) As Byte
Dim a As Byte
Dim b As Byte

almacen = 0
a = 0
b = 0
loop:
If PORTD.0 = 1 Then

   If PORTD.1 = 1 Then
      almacen.b = PORTD.1
      a = 1
      b = b + a
      Else
      almacen.b = PORTD.1
      a = 1
      b = b + a
   Endif
Endif
Goto loop

Pero el vector "almacen" no le puedo cambiar la posicion para ir guardando cada dato simplemente cambiando el valor de la variable b.

Gracias.
Título: Re: Guardar tren pulsos vector
Publicado por: aitopes en 21 de Mayo de 2008, 14:22:43
Hola!
Estas usando PIC SIMULATOR IDE?

En principio, declaras un vector , pero luego haces cosas como

almacen.b = PORTD.1

que no parecen correctas. ¿No te da un error el compilador?

Saludos!

Título: Re: Guardar tren pulsos vector
Publicado por: dogflu66 en 21 de Mayo de 2008, 18:20:24
Asi ira mejor.

Código: QBasic/QuickBASIC
  1. AllDigital  'hay que definir de que tipo seran los puertos I/O o analogicos
  2. TRISD = %11111111
  3.  
  4. DIM almacen(50) AS Byte
  5. DIM aux_almacen AS Byte
  6. 'Dim a As Byte 'esta no es necesaria
  7. DIM b AS Byte
  8.  
  9. almacen = 0
  10. aux_almacen = 0
  11. 'a = 0
  12. b = 0
  13.  
  14. LOOP:
  15.         IF PORTD.0 = 1 AND b < 50 THEN '__b no puede ser mayor que 50-1=49,
  16.                                                                 '__de 0 a 49 van 50 variables almacen
  17.                 IF PORTD.1 = 1 THEN
  18.                         aux_almacen.0 = PORTD.1
  19.                         almacen(b) = aux_almacen  'hay que pasarle el valor mediante una variable aux del mismo tipo
  20. 'a = 1
  21.                         b = b + 1
  22.                 ELSE
  23.                         aux_almacen.0 = PORTD.1
  24.                         almacen(b) = aux_almacen
  25. 'a = 1
  26.                         b = b + 1
  27.                 Endif
  28.         Endif
  29. GOTO LOOP
Título: Re: Guardar tren pulsos vector
Publicado por: LordLafebre en 21 de Mayo de 2008, 19:03:55
Asi hira mejor.

Hola:

Master, esa palabra te la acabas de inventar, está de que la agregues al diccionario  :D :D
Título: Re: Guardar tren pulsos vector
Publicado por: dogflu66 en 21 de Mayo de 2008, 19:05:33
La quito la quito... :oops: :oops: :oops: