Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > ASM y Microcontroladores
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2008
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Exclamation 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.
Ejemplo 2: Envío de un string en forma contínua por el puerto serie

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.
Ejemplo 3: Uso de registros, loops, vectores y cálculos (código usado en un equipo de balanceo)

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"
Conclusión: a pesar de sus limitaciones, este producto constituye una excelente opción para desarrollar aplicaciones con la línea PIC, cuando la complejidad es entre media o alta. Vale la pena darle una mirada a la versión de pruebas, que tiene la ventaja de ser prácticamente igual a la versión paga.

Última edición por rretamar fecha: 04-07-2008 a las 17:20:58.
Responder Con Cita
  #2  
Antiguo 04-07-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 04-07-2008
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Cita:
Empezado por poliburro Ver Mensaje
Se ve interesante. En que tipo de proyecto los has usado compañero?, que resultados te ha dado?.
Ejemplo de un proyecto realizado con este compilador:
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 17:12:24.
Responder Con Cita
  #4  
Antiguo 05-07-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡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.
Responder Con Cita
  #5  
Antiguo 10-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por rretamar Ver Mensaje
No soy experto en el producto, pero tengo algo de práctica y con gusto intentaré reponder las dudas que puedan surgir.

Saludos !
Yo también lo uso en toda la gama de productos de hardware que tiene la empresa, así que en lo que pueda ayudar... ahí vamos.

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
Responder Con Cita
  #6  
Antiguo 13-07-2008
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Thumbs up

Donald Shimoda es un experto, y es un gusto tenerlo participando en del foro. Bienvenido !!!!

Saludos !
Responder Con Cita
  #7  
Antiguo 13-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por rretamar Ver Mensaje
Donald Shimoda es un experto, y es un gusto tenerlo participando en del foro. Bienvenido !!!!
Saludos !
Amigo gracias pero no me considero un experto. Lo que si puedo decir es que amo lo que hago.

Parece que todos los caminos conducen a Pascal (anteriormente Delphi)

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #8  
Antiguo 05-07-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por rretamar Ver Mensaje
Vaya, esta imagen me recuerda al buen amigo [JoseFco]

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 05-07-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por egostar Ver Mensaje
Vaya, esta imagen me recuerda al buen amigo [JoseFco]

Salud OS
Asi nos llevamos? toy feo pero no pa tanto.

No se crean... pura broma.

Un Saludo.
Responder Con Cita
  #10  
Antiguo 06-07-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
¡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.
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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #11  
Antiguo 06-07-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Totalmente de acuerdo, incluso en lo referente a biblioteca. Es más, yo también les diría que utilizasen programa, aplicación. herramienta, sistema... en vez de software.
Tanto librería, biblioteca y software son palabras aceptadas en el español. El punto es respetar cabalmente y sin artificios lingüísticos las traducciones. http://www.clubdelphi.com/foros/showthread.php?t=52131
Responder Con Cita
  #12  
Antiguo 07-07-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:16:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi