You are on page 1of 6

PROTON IDE

El compilador Proton Basic es un lenguaje de programacin de nueva generacin que hace mas fcil y rpido el manejo de microcontroladores Pic micro de Microchip. El lenguaje Basic es mucho ms fcil de leer y escribir que el lenguaje ensamblador Microchip. El Proton Basic produce un cdigo que puede ser programado para una variedad de micro controladores PIC que tengan de 8 a 68 pins y varias opciones en el chip incluyendo convertidores A/D, temporizadores y puertos seriales.

Bases del Protn Basic

Identificadores Un identificador es simplemente un nombre. Son usados en Pronto Basic como etiquetas de lneas y nombres de variables. Un identificador es cualquier secuencia de letras, dgitos y smbolos, aunque no deben comenzar con un dgito. Los identificadores no distinguen las letras maysculas de las minsculas, por lo que etiqueta, ETIQUETA, Etiqueta son todas tratadas como equivalentes. Aunque las etiquetas pueden tener cualquier nmero de caracteres de longitud, Protn Basic solamente reconoce los primeros 32.

Etiquetas Para marcar lneas que el programa puede desear referenciar con comandos GOTO GOSUB, Proton BAsic usa tiquetas de lnea y no permite nmero de lnea y no requiere que cada lnea sea etiquetada. Cualquier lnea puede comenzar con una etiqueta de lnea que es simplemente un identificador seguido por dos puntos (:) ejemplo here:

Goto here Variables Variables es donde se guardan datos en forma temporaria en el programa. Son creadas usando la palabra clave DIM. Pueden ser bits , bytes, word, dword, float y string. El Espacio para cada variable es automticamente destinado en la memoria RAM del microcontrolador. El formato para crear una variable es el siguiente:

DIM etiqueta AS tipo

Etiqueta es cualquier identificador excluyendo palabras claves como se describe anteriormente. Tipo es bit, byte , word , dword or float. Algunos ejemplos de declaracion de varibles de cada tipo son:
DIM Var1 AS BYTE ' Crea una variable de 8-bit sin signo (0 - 255)

DIM DIM DIM DIM DIM

Var2 AS BIT ' Crea una variable de un simple bit (0 - 1) Var3 AS WORD ' Crea una variable de 16-bit sin signo (0 - 65535) Var4 AS DWORD ' Crea a variable de 32-bit con signo (-2147483647 , +2147483647) Var5 AS FLOAT ' Crea una variable de 32-bit punto flotante. ST AS STRING * 20 ' Crea una cadena con capacidad de 20 caracteres (8-bit)

Alias DIM tambin puede ser usado para crear un alias para una variable. Esto es muy til para acceder al interior de una variable. Dim Var1 as Var2 Var2 es otro nombre de var1

Dim VAr3 as Portb.1 asigna el alias Var3 a la patilla RB0 Arreglos Los arreglos de variables pueden ser creados en una manera similar a las variables. Dim Etiqueta [tamao] as tipo

Etiqueta es cualquier identificador, excluyendo palabras claves, como se describi anteriormente. Tipo es BIT, BYTE WORD. Nmero de elementos es cuantos lugares en el arreglo se desean. Algunos ejemplos de creacin de arreglo son los siguientes: DIM sharks[10] as byte

DIM var3[10] as Word La primera ubicacin dentro del arreglo es el elemento cero. Dada la forma en que los arreglos estn localizados en memoria hay lmites de tamao para cada tipo.

Constantes Las llamadas constantes pueden ser creadas de manera similar a las variables. Puede ser mas conveniente usar un nombre de constante en lugar de un nmero constante. Si el nmero necesita ser cambiado, nicamente puede ser cambiando en un lugar del programa donde se define la constante. No pueden guardarse datos variables dentro de una constante. Ejemplos : Dim Mice as 4.13 En este ejemplo la constante mice es de 4,13 y la misma no puede ser modificada durante el transcurso del programa.

Constantes Numricas Proton BAsic permite definir constantes numricas en tres bases: decimal, binario y hexadecimal. Valores binarios son definidos usando el prefijo % y valores hexadecimales usando el prefijo $. Los valores decimales se toman por defecto y no requieren prefijo. Ejemplos: 100 valor decimal 100

%100 valor binario para el decimal 4. $100 valor hexadecimal para el decimal 256. Pines A los pines de Microcontrolador, se puede acceder de diferentes modos. El mejor camino para especificar un pin para una operacin, es simplemente usar sus nombres PORT y un nmero de bit: PORTB.1=1 Coloca PORTB, bit 1 a 1 Para recordar fcilmente para qu puede ser usado un pin, debe serle asignado un nombre usando el comando DIM. De esta manera, el nombre puede ser utilizado luego en cualquier operacin.

Comentarios Un comentario de Protn Basic comienza con la palabra clave REM o el apstrofe (). Todos los dems caracteres de esa lnea se ignoran. REM es una nica palabra clave y no es una abreviacin de REMark, por lo tanto, los nombres de variables pueden comenzar con REM (aunque REM por s mismo no es vlido).

Declaraciones mltiples Para permitir programas mas compactos y agrupamientos lgicos de comandos relacionados, Proton Basic soporta el uso de (:) para separar comandos ubicados en la misma lnea. Los siguientes dos ejemplos son equivalentes. W2 = W0 W0 = W1 W1 = W2 Es lo mismo que: W2 = w0 : W0 = W1 : W1 = W2 En los dos casos, el tamao del cdigo generado es el mismo.

Operadores Matemticos Protn Basic efecta todas las operaciones matemticas en orden jerrquico. Esto significa que existe precedencia para los operadores .Multiplicacin y divisin son efectuados antes que suma y resta , por ejemplo. Para asegurarse que las operaciones son efectuadas en el orden que se desea, se usan parntesis para agrupar las operaciones. A=(B+C)*(D-E) Todas las operaciones matemticas se realizan sin signo y con una precisin de 16 bit.

Los operadores soportados son : Operador matemtico Descripcin + Suma - Resta

* Multiplicacin ** 16 bits superiores de la multiplicacin */ 16 nits medios de la multiplicacin / Divisin // Resto (mdulo) << Desplazamiento izquierdo >> Desplazamiento derecho ABS Valor absoluto COS Coseno DIG Digito SIN Seno SQR Raiz cuadrada

Operadores lgicos Los operadores lgicos difieren de las operaciones de bit inteligente. Entregan un resultado CIERTO / FALSO de su operacin .Valores 0 son tratados como falso. Cualquier otro valor es cierto. Se usan junto a operadores de comparacin en una declaracin IF .. THEN .Los operadores soportados son :

Operador Descripcin AND o && AND logico OR o I I OR logico XOR o ^ ^ OR exclusivo logico NOT AND NAND logico NOT OR NOR logico NOT XOR NXOR logico

Relational operators are used to compare two values as shown in the list below. The result can be used to make a decision regarding program flow.

Operadores del tipo Expression de Relacion

Los Operadores de Relacion son usados para comparar dos valores como se muestra en la lista abajo. El resultado es boleano y pouede ser usado para tomar deiciones en el flujo del programa. Operador = <> < > <= >= Relacion Igualdad desigualdad menor que mayor que menor o igual que mayor o igual que Ejemplo X=Y X <> Y X<Y X>Y X <= Y X >= Y

CALL etiqueta Ejecuta la subrutina ensamblador llamada etiqueta. Normalmente se usa GOSUB para ejecutar una subrutina .La principal diferencia entre GOSUB y CALL, es que con sta ltima no se chequea la existencia de etiquetas hasta el momento de ensamblar. Usando CALL se puede acceder a una etiqueta en una seccin de lenguaje ensamblador, lo que es inaccesible mediante Protn Basic . Dentro de los comandos de Protn Basic mas estudiados para la elaboracin del diseo se describen los Siguientes:

END Detiene la ejecucin del proceso y entra en modo de baja potencia .Todos los pins de I/O permanecen en el estado en que se encuentran ,END trabaja ejecutando una instruccin SLEEP continua dentro de un loop . Un END , STOP GOTO deben ser colocados al final de un programa para evitar pasar del lmite de la misma u comience nuevamente .

FOR .. NEXT

FOR Count = Start TO End {STEP {-} Inc} {Body} NEXT {Count}

El loop FOR .. NEXT permite a los programas ejecutar un nmero de declaraciones ( Body ) un numerode veces , usando una variable como contador . Debido a su complejidad y versatilidad , es mejor describirla paso a paso . El valor de Start se asigna a la variable ndice ,Count , que puede ser una variable de cualquier tipo . Se ejecuta el Body . Body es opcional y puede ser omitido ( quizs por un loop de demora ). El valor de Inc es sumado a ( restado si se especifica - ) Count .Si no se define una clusula STEP , se incrementa Count en uno . Si Count no pas End desbord el tipo de variable , la ejecucin vuelve al paso 2) . Si el loop necesita contar ms de 255 ( Count > 255 ) , se debe usar una variable de tamao word .

IF ...THEN IF Comp { AND/OR Comp ... } THEN {Declaracin} ELSE { Declaracin} ENDIF

Efecta una ms comparaciones .Cada trmino Comp puede relacionar una variable con una constante otra variable e incluye uno de los operadores listados anteriormente . En la segunda forma, IF..THEN puede ejecutar condicionalmente un grupo de declaraciones que sigan al THEN. Las declaraciones deben estar seguidas por un ELSE o un ENDIF para completar la estructura.

ON INTERRUPT GOTO Label Permite el manejo de las interrupciones del micro controlador por medio de una subrutina . Existen dos formas de manejar interrupciones usando Proton Basic . La primera es escribir una subrutina de interrupcin en lenguaje ensamblador .Esta es la forma de manejar interrupciones con la menor latencia y el menor overhead . El segundo mtodo es escribir un handler ( manejador ) de interrupciones.Es similar a una subrutina , pero termina con un RESUME . Cuando ocurre una interrupcin , se marca con una bandera .Cuando la ejecucin de la declaracin que se estaba ejecutando termina , el programa salta al handler de interrupciones indicado en Label. Una vez que termina el trabajo del handler , una declaracin RESUME enva el programa de vuelta a donde estaba cuando ocurri la interrupcin , tomando todo como lo dej .

DISABLE y ENABLE Permiten que distintas secciones de un programa se ejecuten sin la posibilidad de ser interrumpidas .El lugar ms notorio para usar DISABLE es justo antes del actual handler de interrupciones. O el handler puede ser colocado antes que la declaracin ON INTERRUPT ya que la bandera de interrupciones no se chequea antes del primer ON INTERRUPT en un programa .

You might also like