Buenas,
llevo mucho tiempo leyendo este foro y otros muchos aprendiendo contínuamente cosas sobre los PIC's y hace poco por fin me he decidido a empezar a hacer algo propio, como me gusta mucho tocar la guitarra y tengo por ahí amplis montados por mismo quería incorporarles la funcionalidad de tener un cambio de canales accionando con el pie pulsadores momentáneos.
Lo vi como un proyecto sencillo ya que se trataba de leer estados en las entradas y actuar en consecuencia en las salidas.......
He hecho mi primer programa para un PIC12F629 ya que tenía justo las patillas que necesitaba para esto: 3 entradas y 3 salidas, así que no me compliqué más para elegir el PIC adecuado.
El programa está hecho en PicBasic Pro y funciona perfectamente y estoy muy contento con el resultado, pero aún así me gustaría que alguien experto revisara el programa y me dijera qué se puede mejorar en el mismo o qué no debería haber hecho en el mismo. Seguro que aunque el programa funcione perfectamente se puede "depurar" para que esté mejor estructurado y por eso pido opinión, sin más, aquí les pongo el programa para que lo revisen si les apetece:
'****************************************
'* Sistema de cambio de 3 canales en ampli *
'* Autor: Conguito *
'* El circuito consiste en un sistema de cambio *
'* de canales de un amplificador de guitarra *
'* usando pulsadores para el pie, cuando se *
'* activa un canal deben desactivarse los *
'* restantes *
'****************************************
'Asignando nombres a las E/S
canal1 var gpio.0 'Salida que activa el Canal 1
canal2 var gpio.1 'Salida que activa el Canal 2
canal3 var gpio.2 'Salida que activa el Canal 3
boton1 var gpio.5 'Pulsador 1
boton2 var gpio.4 'Pulsador 2
boton3 var gpio.3 'Pulsador 3
trisio = %111000 'Definimos bits de entrada y salida
low 1 'Ponemos las salidas 2 y 3 a nivel bajo
low 2 'y ponemos de inicio siempre la salida 1
high 0 'a nivel alto.
loop: 'Rutina principal del programa
if boton1 = 1 then activ1 'Si presionamos el botón1 ir a la etiqueta activ1
if boton2 = 1 then activ2 'Si presionamos el botón2 ir a la etiqueta activ2
if boton3 = 1 then activ3 'Si presionamos el botón3 ir a la etiqueta activ3
goto loop 'Si no se pulsa nada, volver a iniciar la rutina principal
activ1: 'Rutina de activación del canal 1
low canal2 'Desactivamos canal 2.....
low canal3 'y canal 3
high canal1 'Activamos canal 1
pause 1000 'Una pausa de 1s para evitar bouncing
goto loop 'Y volvemos a la rutina principal
activ2: 'Rutina de activación del canal 2
low canal1 'Desactivamos canal 1.....
low canal3 'y canal 3
high canal2 'Activamos canal 2
pause 1000 'Una pausa de 1s para evitar bouncing
goto loop 'Y volvemos a la rutina principal
activ3: 'Rutina de activación del canal 3
low canal1 'Desactivamos canal 1......
low canal2 'y canal 2
high canal3 'Activamos el canal 3
pause 1000 'Una pausa de 1s para evitar bouncing
goto loop 'Y volvemos a la rutina principal
end
Salu2.