FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Presentando a Mikropascal
Hola.
Envío un pequeño artículo sobre este compilador de Pascal para PICs. Después de todo, este es un foro de Delphi, ¿ no ?. Aclaro que las opiniones aquí vertidas son puramente personales y no tengo ningún tipo de relación con la empresa. Introducción a Mikropascal El producto consiste en un compilado de lenguaje Pascal para microcontroladores PIC, una librería con funciones de alto nivel para múltiples propósitos y un software para programación (PicFlash) para usar un hardware de programación/depuración provisto por la misma empresa. El IDE de Mikropascal Ventajas: * Utiliza el lenguaje Pascal, lo que se traduce en una sintaxis muy cómoda y legible. Esta versión de Pascal contiene algunas extensiones para poder trabajar con los distintos recursos que nos provea el microcontrolador. Al igual que el Pascal estándar, soporta unidades, pasaje de parámetros por valor o referencia, punteros, moldes de tipos, vectores, estructuras de datos multivariable como registros, variables absolutas, soporte de ensamblador en línea, directivas de compilación $define, archivos "include", etc. * Tiene un entorno de desarrollo (IDE) muy cómodo, con completado de código, templates, colorización de sintaxis, depurador, administrador de proyectos, explorador de código, vista del código ensamblador generado, gráficos de ocupación de memoria, una excelente ayuda en línea (también disponible en formato PDF). * La versión "de pruebas" difiere únicamente en el tamaño máximo de código que el enlazador es capaz de manejar (2 Kb como máximo). Salvo ese detalle, la versión descargable no difiere en nada más de la versión paga (se registra con un archivo de licencia .key que hay que copiar en la carpeta del compilador). El registro elimina esa limitación. * El precio es muy accesible. Se paga la licencia por única vez, y las siguientes actualizaciones del producto son gratis. * Excelente integración con el programador PicFlash de la misma empresa. Este programador también soporta depuración "en circuito" y muestra los registros de configuración de forma muy entendible. * La librería de funciones es muy completa. Hay desde comunicación USB hasta acceso a displays LCD gráficos. * El foro de Mikroelectronica tiene bastante actividad, y hay usuarios del producto con conocimientos muy avanzados. * El soporte a registros, interrupciones, flags y memoria es por demás sencillo. Desventajas: * Sólo funciona en Windows. Había una versión para Linux (en estado alpha), pero aparentemente fue abandonada, coincidiendo con la discontinuación de Kylix. * La libería de funciones y procedimientos no es open source. Es una lástima, porque se podría aprender "in situ" viendo cómo están implementadas muchas cosas. También podrían mejorarse otras si se tuviera acceso al código fuente. Hubo varios pedidos por parte de algunos usuarios para que abran la libería, pero parte del staff de la empresa no está de acuerdo por el momento (la parte técnica está de acuerdo, pero la parte directiva no). * Algunos bugs. En el foro de la empresa suelen estar detallados y se publican los correspondientes parches. Las versiones antiguas tenían bugs realmente graves, que eran un verdadero dolor de cabeza si se deseaba hacer algo más complejo que un "hola mundo" y opacaban al resto del producto. Las versiones actuales son mucho más estables. * El código binario generado es algo más grande que el de otros compiladores y obviamente mucho más extenso que el ensamblador "puro". Esto no es demasiado crítico ya que existen microcontroladores con cantidades de memoria más que generosas (en 32 Kb de flash -por ejemplo en el conocido pic18f452- se puede meter MUCHO código en Pascal) a precios económicos. * Algunos "tips" que son de mucha utilidad (por ejemplo en el tratamiento de cadenas) no están del todo documentados. Nuevamente vale la pena recorrer el foro para encontrar cosas muy interesantes. Otras áreas como el ensamblador en línea y su integración con el código en Pascal también necesitarían más documentación. * No es orientado a objetos. En parte esto es una consecuencia de la necesidad de generar un código pequeño y veloz. Después de todo, la memoria de los microcontroladores es limitada. * El hardware y firmware de Picflash es propietario, lo que obliga a comprarlo a la empresa (a pesar de que su construcción es bastante sencilla -se conecta al port USB-). De todas maneras se puede usar cualquier programador de PICs, siempre que soporte el formato de archivo hex. La ventana de depuración El software de programación PicFlash Ejemplo 1: Acceso a los bits de variables o registros Código:
Program Prueba; Var Variable: Byte; Cadena: String[10]; Begin Cadena := 'Mikropascal'; // Asignar valor a la cadena Cadena[5] := 0; // Truncar cadena, agregando marca de "fin de cadena" Variable.5 := 1; // Colocar bit número 5 en estado alto TRISE := 0; // Acceso al registro de configuración del port E // Dos maneras de cambiar un bit en un registro PORTE.2 :=1; // Colocar el bit #2 del port E en estado alto SetBit(PORTE, 2); // // Cambiando todos los bits de un registro PortE := 0; // Colocar todos los bits del port E en estado bajo // TMR0H := 0; // Setear valor inicial de temporizador TIMER0 (byte alto) TMR0L := 0; // Setear valor inicial de temporizador TIMER0 (byte bajo) ClrWdt; // Reiniciar "perro guardián" (watchdog) End. Código:
Programa Hola_Mundo; Var Saludo: String[15]; // Cadena a enviar Begin Saludo := 'Hola, mundo!'; // Cadena a enviar Usart_Init(115200); // Habilito la USART a una velocidad de 115200 baudios While True Do Begin Usart_Write_Text(Saludo); // Envío un string cada un segundo Delay_ms(1000); // Demora End; End. Código:
// Suma_Senos := 0; Suma_Cosenos := 0; // For Contador := 1 To Capturas Do Begin // Actualizar acumulador de valores de tensión Ciclo.Valor_Medio := Ciclo.Valor_Medio + Muestras[ Contador ].Valor; // Actualizar mínimos y máximos de valores de tensión If Muestras[Contador].Valor > Ciclo.Valor_Maximo Then Ciclo.Valor_Maximo := Muestras[ Contador ].Valor; If Muestras[Contador].Valor < Ciclo.Valor_Minimo Then Ciclo.Valor_Minimo := Muestras[ Contador ].Valor; // // Calcular totales de senos y consenos (coordenadas x,y) Suma_Senos := Suma_Senos + SIN( Radianes(Muestras [Contador].Angulo) ); // Obtener la suma de los senos (coordenada y) Suma_Cosenos := Suma_Cosenos + COS( Radianes(Muestras [Contador].Angulo) ); // Obtener la suma de los cosenos (coordenada x) End; // // Obtener el ángulo medio a través del arco tangente de las coordenadas Ciclo.Angulo_Medio := Grados( ATAN2(Suma_Cosenos, Suma_Senos ) ); If Ciclo.Angulo_Medio < 0 Then Ciclo.Angulo_Medio := Ciclo.Angulo_Medio + 360; // Reducir ángulos "negativos" Última edición por rretamar fecha: 04-07-2008 a las 18:20:58. |
#2
|
||||
|
||||
Se ve interesante. En que tipo de proyecto los has usado compañero?, que resultados te ha dado?.
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
||||
|
||||
Cita:
http://www.hrservicios.com.ar/index....tent&Itemid=67 El software desarrollado en Mikropascal en la máquina que se ve en el enlace hace las siguientes tareas: * Lectura de teclado matricial y realimentación acústica * Control de display LCD * Lectura de enconder incremental * Comunicación con RTC (chip reloj/calendario) * Lectura de datos analógicos desde un ADC. * Lectura de pulsadores * Cálculos (de desbalanceo, angulares, umbrales, promedio) * ABMC de piezas (el equipo guarda una lista de piezas) * Control de variador de velocidad * Generación de señal de frecuencia variable (en segundo plano) * Impresión de etiquetas * Comunicación con una PC * Subprograma de ensayo automático (a partir de datos iniciales, el equipo realiza varios ciclos automáticamente, enviando datos a la pc) En definitiva, me ha ahorrado muchas horas de trabajo. Si hubiera usado ensamblador todavía estaría programando y probando, además de haber obtenido un código kilométrico. Ahora lo estoy usando para una placa E/S con una array de temporizadores programables desde una PC. No soy experto en el producto, pero tengo algo de práctica y con gusto intentaré reponder las dudas que puedan surgir. Saludos ! Última edición por rretamar fecha: 04-07-2008 a las 18:12:24. |
#4
|
||||
|
||||
¡Hola!
Muy interesante aplicación. Lo que hubiera hecho yo en mis años de Turbo Pascal con algo como esto. Sólo habría que invitar a los autores de las traducciones a emplear la palabra biblioteca en lugar de librería. Un abrazo microcontrolado. Al González. |
#5
|
||||
|
||||
Cita:
Comentario: van por la versión 8.1 estable y la 8.3 beta. Si van a probar bajen la 7 con todos sus parches. Lo único reprochable de mikropascal es que las versiones nuevas suelen tener muchos bugs que traen varios dolores de cabeza. La versión de prueba permite generar hasta 2K de memoria de programa, por lo tanto sirve para proyectos pequeños. Saludos. -- Donald Shimoda [Team RO] http://blogs.remobjects.com/blogs/donald |
#6
|
||||
|
||||
Donald Shimoda es un experto, y es un gusto tenerlo participando en del foro. Bienvenido !!!!
Saludos ! |
#7
|
||||
|
||||
Cita:
Parece que todos los caminos conducen a Pascal (anteriormente Delphi) Saludos. |
#10
|
||||
|
||||
Totalmente de acuerdo, incluso en lo referente a biblioteca. Es más, to también les diría que utilizasen programa, aplicación. herramienta, sistema... en vez de software.
|
#11
|
||||
|
||||
Cita:
|
#12
|
|||
|
|||
Hola amigos.
El tema de las traduciones del ingles al español, en materia de electronica y programacion es muy variado.Dependiendo de donde se realizo la traducion.Yo he tenido la oportunidad de leer algunos libros de electronica en español y a pesar de creerme que hablo español. Algunas veces no entiendo ni maiz.En Puerto Rico tienen sus nombres,en Argentina usan otros, en Mexico pues tambien se le tienen nombres a los componentes.Para no hacer esto muy largo, no creo que en Latino America se pueda decir que se habla español.Hablamos algo que le decimos español, pero Nereida Naranjo y si Cervante nos pesca en esa nos quema vivos y emplearia algunos de nuestros libros para atizar la lumbre. PD: Leer del ingles directamente es la mejor opcion si no quieres perderte en la lenguistica criolla. Un Saludo. |
|
|
|