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. |
#7
|
||||
|
||||
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.
|
#8
|
||||
|
||||
Cita:
|
#9
|
|||
|
|||
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. |
#10
|
||||
|
||||
Cita:
Cita:
Cita:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#11
|
|||
|
|||
Fijate lo complicado del tema: Una vez un amigo estaba estudiando para sacar la licencia de electricidad y no le queria entrar al ingles.Se compra un libro. National Electrical Code (NEC) en español, estaba editado en Puerto Rico.Este amigo es cubano y me dice un dia que le ayudara con unas cosas que no entendia y me pasa el libro, jajajajaja decia algo de "La Batea de cableado" para mi una batea es donde mi abuela lavaba la ropa.En fin que termine mirando mi NEC a ver que era la famosa batea esa.
Cuando yo me mude a Los Angeles en el 1984 me toco aprender español otra vez. Y si mañana me mudo A Buenos Aires me tocara aprender otra vez. Un Saludo. |
#12
|
||||
|
||||
y que termino resultando la dichosa batea?
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#13
|
|||
|
|||
La famosa batea era un Cable Tray System.
|
#14
|
||||
|
||||
Cita:
|
#15
|
|||
|
|||
Cita:
Yo en lo particular no me sentiria comodo decir que hablo español.Lo concideraria un atropello a la lengua de Cervantes.Menos ahora que tengo 28 años lejos de mi entorno familiar.Despues de estar entre tantas culturas y usando el modismo y los dialectos de otros paises pues lo poco que aprendi de mi madre, quedo en el camino. PD: Estaria interesante contar con La real academia de la lengua cubana. Un Saludo. |
#16
|
||||
|
||||
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 |
#17
|
||||
|
||||
Donald Shimoda es un experto, y es un gusto tenerlo participando en del foro. Bienvenido !!!!
Saludos ! |
#18
|
||||
|
||||
Cita:
Parece que todos los caminos conducen a Pascal (anteriormente Delphi) Saludos. |
#19
|
|||
|
|||
mikropascal
hola a todos me pueden ayudar quiero programar en mikropascal demo ya lo tengo, hice el programa para un pic16f873 por lo que entiendo es que tambien lo graba con extencion .hex, ahora mi pregunta es como me comunico para grabar el pic, del mikropascal al pic hay algun circuito o algo asi para conectarlo a la pc y poder grabar el pic, se los agradeceria si me hubicaran con esto gracias.
|
#20
|
||||
|
||||
Hola.
Para grabar los archivos .hex generados con Mikropascal necesitas un programador (hardware y software). Veamos las diferentes alternativas: Alnternativa 1) La gente de Mikroelectronika vende el programador Picflash (se conecta al puerto USB). Ventajas: * Es bastante económico, se integra muy bien con los compiladores de Mikro-E y se puede hacer depuración "en circuito" (no siempre se puede usar, depende del tipo de aplicación que se esté desarrollando). El software PicFlash interpreta los parámetros de configuración del microcontrolador (los "config flags") mostrándolos en forma muy clara y explícita (menos posibilidad de cometer errores). Es apto para programación "en circuito", aunque si no tenemos la placa preparada para ello, habrá que armar un adaptador externo con un zócalo "zif". Desventajas: * Solamente funciona bajo Windows. Al ser un desarrollo propietario (privativo), no se dispone de información técnica del protocolo ni del circuito. Menos aún del firmware del pic que usa el programador. Tampoco funcionará con otro soft de programación que no sea el Picflash. Alternativa 2) Otra alternativa es usar otro tipo de programadores. Por internet hay información para construirse uno. En mi caso, uso el programador p16pro, muy fácil de construir y se conecta al puerto paralelo. el programdor p16pro (sin el zócalo zif) El circuito de ese programador es: http://picallw.feniks-pro.com/hardware.htm (en la parte inferior de la página esa el esquema). http://www.circuitsarchive.org/image...rog_p16pro.gif (en color) La parte más costosa de ese programador es el zócalo "zif" (zero insertion force), que permite colocar y retirar fácilmente el microcontrolador, usando una palanca lateral. La contrucción no debería ser difícil para alguien que conozca de electrónica. Hay varios softwares que usan ese programador. El más antiguo es el llamado P16PRO (el software), pero además de estar desactualizado, carece de soporte para microcontroladores recientes. Igual vale la pena tenerlo, ya que es muy práctico. Otra alternativa más moderna es el software Ic-Prog (freeware y en español), que soporta modelos de microcontroladores más modernos. Se puede descargar aquí: http://www.ic-prog.com/main.html Si te decides por este software y el circuito p16pro, te puedo pasar los parámetros de configuración apropiados (no los tengo acá en mi casa, ya que están en mi oficina/taller). Hay muchos otros programadores (circuitos y software), pero no los he usado, ya que con estos dos me alcanza y sobra. Si alguien tiene experiencia con otros circuitos más elaborados (como el "PicAll") sería interesante poder conocer sus experiencias. Saludos electrónicos ! Última edición por rretamar fecha: 11-02-2009 a las 18:27:04. |
|
|
|