Autor Tema: Novato en el tema de programación pide opinión sobre primer proyecto en Basic.  (Leído 2517 veces)

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

Desconectado Conguito

  • PIC10
  • *
  • Mensajes: 13
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.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Bastante practico esta hecho el programa, demasiado transparente. Lo que yo te diria que podrias "depurar" seria que metas el TRISIO y declares entradas y salidas segun sea el caso y con eso te ahorras el uso de HIGH y LOW asi asignas 1 o 0 a la variable en cuestion. Eso ahorra un poco el programa.

Otra seria que el pause lo metas en una subrutina y lo mandes llamar al fin es el mismo. De ahi no se me ocurre otra cosa.

Felicidades por el primer proyecto.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Conguito

  • PIC10
  • *
  • Mensajes: 13
Re: Novato en el tema de programación pide opinión sobre primer proyecto en Basi
« Respuesta #2 en: 30 de Abril de 2008, 14:12:25 »
Bastante practico esta hecho el programa, demasiado transparente. Lo que yo te diria que podrias "depurar" seria que metas el TRISIO y declares entradas y salidas segun sea el caso y con eso te ahorras el uso de HIGH y LOW asi asignas 1 o 0 a la variable en cuestion. Eso ahorra un poco el programa.

Otra seria que el pause lo metas en una subrutina y lo mandes llamar al fin es el mismo. De ahi no se me ocurre otra cosa.

Felicidades por el primer proyecto.

Me tienes que explicar lo de "demasiado transparente"........ :mrgreen:
Lo de simplificar usando la definición de TRISIO para los puertos y después sólo ponerlos en 1 o en 0 sí lo veo más lógico, gracias por la recomendación.
Lo de meter el pause en una subrutina........sería usar GOSUB cada vez que quiero hacer las pausas de 1 segundo y volver con un RETURN al sitio anterior?
O también hacer una subrutina de pausa que vaya directamente a la rutina principal una vez hecha la pausa.......creo que es más lógico esto último.....si es que me gusta complicarme la vida :mrgreen:
Gracias por tu opinión, estoy muy animado con el tema de los pics y tengo muchas ideas en la cabeza, conforme se me ocurre afrontar un proyecto nuevo empiezo a estudiar cosas a las que antes no le hacía caso porque no les veía utilidad y que después veo que son importantes......pero supongo que no soy el único que aprende de esta manera........
Salu2.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Saludos Conguito!
Pues yo no soy "experto"... ese título se lo dejo a los moderadores del foro... redpic, nocturno, menta, porcher, migsantiago... ya los conoces no?  :mrgreen:
Pero en mi modesta opinión, tu programa está de lo lindo viejo!
Muy bien ordenado y estructurado...
Felicitaciones!  :-/
Nos leemos en el foro!  :-)
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Hola con bastante transparente me refiero es que se entiende perfectamente lo que hace tu programa aun sin comentarlo.

Y si lo de la subrutina seria con un gosub y return para que regrese a la linea anterior, que bueno que estes animado con esto felicidades.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Conguito

  • PIC10
  • *
  • Mensajes: 13
Hola con bastante transparente me refiero es que se entiende perfectamente lo que hace tu programa aun sin comentarlo.

Y si lo de la subrutina seria con un gosub y return para que regrese a la linea anterior, que bueno que estes animado con esto felicidades.
Gracias por la explicación de la transparencia, la verdad es que me gusta entender lo que escribo incluso aunque pase mucho tiempo desde que lo hice, por eso pongo muchos comentarios y aparte intento hacer los programas con estructuras sencillas pero efectivas.
Lo que más pena me da es el tiempo perdido en estos últimos 7 años desde que se empezaron a hacer famosos los PIC16F84 y yo no le presté atención al tema hasta ahora........a la vejez viruela como dicen por aquí, con 31 años me entra el gusanillo por aprender algo nuevo......pero más vale tarde que nunca.
Salu2.

Conectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Ánimo, Conguito, algunos lo hemos descubierto incluso más tarde y el gusanillo ya se ha convertido en anaconda.

Desconectado Conguito

  • PIC10
  • *
  • Mensajes: 13
Hola Nocturno, pues sí, soy de culo inquieto y me arrepiento de no haberme iniciado antes en esto, lo que pasa es que soy muy aficionado a la electrónica orientada al mundo de la guitarra: efectos, amplis a transistores, a válvulas.....y claro, meterme en electrónica digital y en microcontroladores lo veía como algo innecesario, pero encuanto me ha hecho falta me he metido y además lo veo como un complemento fantástico a lo que ya hacía.
Por tu web también ando, jejejjejejej así que ya nos veremos a menudo.
Salu2.


 

anything