Autor Tema: Auto fantastico con pic 16f690  (Leído 3790 veces)

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

Desconectado dr cerebro

  • PIC10
  • *
  • Mensajes: 42
    • Solo para la Gloria de Dios
Auto fantastico con pic 16f690
« en: 19 de Agosto de 2011, 01:11:47 »
Hola a todos.

Esto aprendiendo a programar controladores con el libro "Microcontroladores Pic programación en basic - Carlos a Reyes." Pero al llegar a la pagina 51 y tratar de realizar el ejercicio 5.2.2 Luces del auto fantástico, algo sale mal. En la simulación en Pic simulator Ide, el primer led enciende, luego se apaga y no pasa nada. en el circuito real sucede lo mismo.

Este es el programa que escribi es este.

Código: [Seleccionar]
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : Dr cerebro                                        *
'*  Notice  : Copyright (c) 2011                                *
'*          : All Rights Reserved                               *
'*  Date    : 15/08/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEFINE OSC 4
n var byte ' Defino la variable del contador
SYMBOL Leds = PORTC ' El puerto C se llama Leds
TRISC = 0 ' TODO EL PUERTO C ES SALIDA

Leds = %00000001
pause 1000 'espero un segundo para verificar que el led enciende

inicio:
    for n = 1 to 4
        leds = leds >> 1
        PAUSE 200
    next
    for n = 1 to 4
        leds = leds << 1
        PAUSE 200
    next                         
   
    goto inicio 
end

Saludos.
Inicio:
    Lcdcmdout LcdLine1Clear
    WaitMs 1000
    Lcdout "Hogar, dulce hogar."
    WaitMs 1000
goto inicio

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Auto fantastico con pic 16f690
« Respuesta #1 en: 19 de Agosto de 2011, 03:25:08 »
Al principio Leds vale uno, luego desplazas a la derecha, de modo que valdrá 0, después de esto todos los desplazamientos son inútiles: seguirá valiendo cero.
Podrías inicializar Leds con 16 (o con 4 y realizar solo tres desplazamientos en ambos bucles).

Deberías ver en el manual de tu compilador si al desplazar a la derecha agrega a la izquierda el bit desplazado (creo que recibirías mejor ayuda si hubieras realizado el POST en 'Lenguaje Basic para microcontroladores PIC').

Si te parece que el código es incorrecto, podrías buscar en internet la fe de erratas para tu libro, si existe.
@fabianjsm is on twitter

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Auto fantastico con pic 16f690
« Respuesta #2 en: 19 de Agosto de 2011, 09:46:58 »
intercambia el sentido de tus desplazamientos, primero corre el bit hacia la izquierda y luego hacia la derecha
"Nada es imposible, no si puedes imaginarlo"

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Auto fantastico con pic 16f690
« Respuesta #3 en: 19 de Agosto de 2011, 16:18:37 »
Bien ahí rivale, no se me había ocurrido!
En ese caso, el cuarto desplazamiento no esta haciendo cero la variable?
@fabianjsm is on twitter

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Auto fantastico con pic 16f690
« Respuesta #4 en: 19 de Agosto de 2011, 16:29:53 »
no se de que tamaño sea el puerto, pero solo se podrias hacer n-1 si el puerto es de n bits para que se vea completo
"Nada es imposible, no si puedes imaginarlo"

Desconectado dr cerebro

  • PIC10
  • *
  • Mensajes: 42
    • Solo para la Gloria de Dios
Re: Auto fantastico con pic 16f690
« Respuesta #5 en: 20 de Agosto de 2011, 01:34:57 »
intercambia el sentido de tus desplazamientos, primero corre el bit hacia la izquierda y luego hacia la derecha

He invertido el sentido pero sucede lo mismo.

Las capturas del simulador.

Inicio del programa:


Uploaded with ImageShack.us

Un instante despues el led se apaga igual:



Uploaded with ImageShack.us


De antemano muchas gracias.
Inicio:
    Lcdcmdout LcdLine1Clear
    WaitMs 1000
    Lcdout "Hogar, dulce hogar."
    WaitMs 1000
goto inicio

Desconectado dr cerebro

  • PIC10
  • *
  • Mensajes: 42
    • Solo para la Gloria de Dios
Re: Auto fantastico con pic 16f690
« Respuesta #6 en: 20 de Agosto de 2011, 01:38:54 »
no se de que tamaño sea el puerto, pero solo se podrias hacer n-1 si el puerto es de n bits para que se vea completo

El bucle for lo he limitado a 4 porque estoy empleando como hadware el pickit2, el cual tiene cuatro leds conectados a PORTC.0, PORTC.1, PORTC.2 Y PORTC.3

Gracias.

ummmm. Aunque deberia ser 3. o no? voy a probar con 3 en lugar de 4 e invertir la rotacion en ambos sentidos a ver que pasa.

Inicio:
    Lcdcmdout LcdLine1Clear
    WaitMs 1000
    Lcdout "Hogar, dulce hogar."
    WaitMs 1000
goto inicio


 

anything