PDF de programación - AMICUS18-Tutorial5

Imágen de pdf AMICUS18-Tutorial5

AMICUS18-Tutorial5gráfica de visualizaciones

Publicado el 1 de Octubre del 2018
427 visualizaciones desde el 1 de Octubre del 2018
1,2 MB
16 paginas
Creado hace 11a (21/01/2013)
www.eaqrp.com



AMICUS18®

www.myamicus.co.uk

Tutorial 5

www.protonbasic.co.uk



PLANTILLA 1-A


Presentación:

Suplemento al Tutorial 4 - Máquina de Estados.

Presento una aplicación para poner en práctica el sistema de Máquina de Estados
comentado en el Tutorial-4, con una plantilla hecha en lenguaje Basic Amicus18. Esta
plantilla está adaptada al compilador para los PIC18F25K20 y PIC18F25K22. Para escoger
el PIC18F25K22 se escribe en el principio del programa: Device = 18F25K22 en lugar

de: Device = 18F25K20. El cambio de código se hace al compilar.

ALGUNAS DEFINICIONES Y CONVENCIONES

A continuación se describen las convenciones que utilizo en el compilador en el momento
de escribir los programas para mejorar la comprensión del código.

Información referente a los comandos del compilador
Los comandos del compilador se resaltan en negrita. Por ejemplo, If / Then / Endif,
Branch, For / To / Next, etc…

Comandos de la librería
Además de simplificar la escritura, ayudará a mejorar la portabilidad de nuestros
programas. También los comandos de la librería se resaltan en negrita en el IDE, no
obstante se acabarán con doble paréntesis para reconocerlos: ej. Print_SMeter(). Podría
estar incluido algún parámetro, por ejemplo Set_Cursor(1,5), es decir poner el cursor del
LCD en la línea 1 y en el carácter 5.

Variables
Las variables son los datos temporales donde se almacenan en un programa BASIC. En
un programa largo es indispensable diferenciar los tipos de variables que se van a utilizar.
Desafortunadamente este compilador no trata ni ordena las variables según su uso, igual
de mal como el Basic original, habrá que organizarlas nosotros mismos. Otros
compiladores Basic recientes ya emplean un lenguaje estructurado con una buena
gestión de las variables.

Variables Globales:
Las variables, en los lenguajes de programación, son simplemente recipientes que
contienen valores. El acceso a las variables y el contenido de ellas se realizan a través de
su nombre, también conocido como sus identificadores.
Las entradas son las variables que se crean y se llenan de valores, cuando se llama a un

Amicus18
Tutorial-5 Plantilla-1a V1.0

Por Alberto Freixanet (EA3AGV)

EA-QRP CLUB

Enero 2013 - 1/16



procedimiento. Los nombres de las variables se construyen básicamente en el principio
del programa en el caso del Basic. El Amicus18 es un poco más tolerante.

Estos identificadores se pueden utilizar en las instrucciones que constituyen el cuerpo del
procedimiento. Estas variables suelen ser usadas por un programa en particular y no
pueden ser borradas, hay que conservarlas durante todos los procedimientos. Un borrado
accidental de una variable global provocará un problema grave en el funcionamiento del
programa. Para nombrar una variable global utilizo nombres normales tal como Index,
Counter, Data_Input, Data_Output…

Variables Locales:
Algunas variables se definen como locales para el procedimiento en el que se definen. Se
usan en rutinas determinadas y en procedimiento cerrados que empiezan y terminan
totalmente. Una vez que el procedimiento ha terminado, la variable local no sirve y puede
ser borrada o utilizada en otra rutina. De esta manera se ahorra el uso de muchas
variables cuyo microprocesador tiene una cantidad limitada. No olvidemos que el precio
de un PIC® depende por una grande parte por el tamaño de las memorias RAM, FLASH
y EEPROM.

Para nombrar una variable local suelo utilizar un nombre con una letra suplementaría al
principio tal como aIndex, aLoop, aData_Input, aData_Output. La letra minúscula “a”
definirá que estoy usando esta variable local en el programa principal. Las rutinas
llamadas por el programa principal podrían tener otras letras tal como “b, c, d, e…” y las
variables de macros o de librería podrían usar letras como “u, r, s, t, y, z…”. Si se definen
las variables locales por grupos podremos evitar borrar accidentalmente las variables que
nos interesa. El tema se complica cuando se tiene que pasar un valor de una rutina a
otra, se podrían usar variables globales o locales especialmente identificadas solamente
para este uso.

Registros del PIC®
Muchos registros de configuración SFR (Special Function Register) del PIC® pueden ser
leídos y/o escritos por el usuario. Cuantos más periféricos tenga el PIC®, más registros
se habrá que configurar. El uso de los bits de los registros especiales están descritos en
el manual de cada PIC®. Por ejemplo, para configurar la lectura o grabación en la
memoria EEPROM hay el bit EEPGD que determina si se desea tener acceso a la
memoria EEPROM o FLASH según lo que se escribe (0 o 1). En el caso del
Pic18F25K20 se define como EECON1. EEPGD.

Para evitar de buscar y/o escribir el registro correspondiente suelo nombrar solo el bit de
la función que me interesa. Siempre me olvido a que Registro pertenece. Siendo un bit,
elemento de una variable Byte, puedo definirla como un flag (bandera). Por ejemplo el bit
EECON1. EEPGD sea siempre F_ EEPGD. Pero el compilador necesita saber de dónde
proviene esta definición, en que registro está implicado. Para eso he escrito unas
definiciones por cada microcontrolador de Microchip que uso, por ejemplo para nuestro
caso SYS_18FXXK20.inc. Poniendo este fichero en el principio del programa el
compilador buscará cual es el registro adecuado. Se hizo el trabajo arduo una sola vez.
Además consultando este fichero, se puede saber qué funciones tienen cada bit de un

Amicus18
Tutorial-5 Plantilla-1a V1.0

Por Alberto Freixanet (EA3AGV)

EA-QRP CLUB

Enero 2013 - 2/16



registro determinado. Este fichero es una adaptación de los registros internos definidos
en el manual del PIC®.

Flags del usuario
También se necesitarán unos flags para realizar algunos procedimientos. Utilizo este
mismo sistema. Así puedo diferenciar una variable de un flag solo teniendo una “F”
delante: F_Pulsador (el bit pulsador) diferente a Pulsadores (la variable “Pulsadores”
podría tener varios bits representando diferentes pulsadores).

PREPARACIÓN DEL PROYECTO

Una vez descargados los ficheros del Tutorial “Plantilla-1a” que se va utilizar. Haga una
copia esta carpeta (Plantilla-1) en su ordenador. Todos los ficheros de librería terminados
por .inc deberán ser copiados a la carpeta habitual “D:/AmicusLibrary”. Cambiar la letra
D:/ para corresponder con su disco duro. Recomiendo que después de cada sesión de
trabajo se haga una copia de vuestra carpeta y también de la librería si se ha modificado
cualquier fichero.inc. Guarden a buen recaudo los ficheros originales por si acaso…

Abrir el compilador Amicus18, ir a la barra de herramientas superior. Pulsar “Open”, ir a la
carpeta Plantilla-1. Abrir el fichero “ME_Plantilla1a.BAS”. No olvidar de Modificar la letra
del disco duro, para que corresponda con el suyo, en todas las líneas donde se
encuentren los ficheros “Include”.

ESTRUCTURA

Una plantilla ya diseñada según las normas del compilador donde todo está en su sitio
ayudará al principiante en la realización de su programa.

Etiquetas
Cada rutina o función del código empieza por una etiqueta para explicar básicamente su
uso. Esta rutina esta numerada y posee un número de versión. De esta manera será fácil
de seguir las modificaciones que se podrán realizar y ayudará al intercambio de
comentarios solamente citando este número. Cuando escriban un nuevo código sería
muy útil seguir esta misma pauta.

Definición del microcontrolador:

Si se usa la placa Amicus18 original, ni siquiera hace falta definir el PIC®, lo tiene
implementado automáticamente, “18F25K20”, ni la frecuencia del reloj de 64Mhz.

Zona de declaraciones: ME1-00

En esta zona se colocan todas las declaraciones que necesitamos en nuestro
programa. Ver sección “Declare” en la página 116 del manual del compilador. En
nuestro caso están puestas las necesarias para nuestro ejemplo.

Definición de los registros del PIC18F25K20: ME1-01

Este fichero deberá estar presente en todos los programas usando el PIC18F25K20.

Include "G:/AmicusLibrary/SYS_18FXXK20.inc"

Amicus18
Tutorial-5 Plantilla-1a V1.0

Por Alberto Freixanet (EA3AGV)

EA-QRP CLUB

Enero 2013 - 3/16



Definición de memoria EEPROM: ME1-02

Aquí se pondría el fichero donde están definidos unos parámetros pre-grabados en la
EEPROM si lo necesitaríamos. Ver Edata en la página 140 del manual. Por ejemplo:

Include "G:/AmicusLibrary/EEDATA_10.inc"

El compilador se encargará de generar los códigos necesarios para que los datos
escritos se graben correctamente en la memoria EEPROM del PIC. Estos datos
podrían ser modificados durante el curso del programa.

Definición de parámetros de compilación: ME1-03

Son condiciones para que el compilador realice varias tareas definidas. Ver página
365 del manual. Actualmente están marcadas solamente varias definiciones.

$define On 1

$define Off 0

$define Si 1
$define No 0

Estas definiciones determinan el valor equivalente a las palabras "On", "Off" y "Si",
"No". El compilador solamente cambiará las palabras por su valor real. Si no estáis
familiarizados aún con los estados lógicos, pueden emplear la palabra Inglesa "On"
igual a encendido y "Off" igual a apagado, palabras muy corriente en nuestros
equipos de radio. El "1" significa que se da un valor alto (+3,3V) al puerto de salida
correspondiente y "0" un valor de 0V.
Seguidamente se autoriza las rutinas del Watchdog, en este momento está inutilizada
con “un apóstrofe”. En segundo lugar se autoriza el idioma utilizado para enviar los
mensajes al Terminal o a la pantalla LCD cuando se utilicen, lo veremos mas
adelante.
'$define WatchdogOn

$define _Spanish_
'$define _English_
'$define _French_
'$define _Catalan_

Autorizar solamente un idioma a la vez.

Podrán consultar en la librería de macros y en el fichero Ami
  • Links de descarga
http://lwp-l.com/pdf13669

Comentarios de: AMICUS18-Tutorial5 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad