# Como pasar de matlab a pic



## EVA (Nov 11, 2008)

Necesito pasar un programa de matlab a pic, y no tengo ni idea de programar pic. Como lo hago?! Este es el programilla, tengo que utilizar un acelerometro el Lis3L06aL:



```
ai=-90:90;
x=round(255*sin(ai*pi/180));
y=-round(255*cos(ai*pi/180));

r023=0.23;    
r0275=0.275;
r515=5;

ap=zeros(size(ai));

sel=(abs(x)<113);
ap(sel)=r023*x(sel);

sel=(abs<113);

ap(sel)=(90+r023*y(sel)).*sign(x(sel));

sel=(abs(x)>113)&(abs(x)<181);
ap(sel)=r0275*x(sel)-r515.*sign(x(sel));

sel=(abs>113)&(abs<181);

ap(sel)=(95+r0275*y(sel)).*sign(x(sel));

conv=1.417;
     
     
angle=(ap+90)*conv;
```


----------



## lanselor (Nov 12, 2008)

Hola, he usado matlab un par de veces pero nada que te pueda servir. He mirado por la web y encontré esta pagina:

http://www.matpic.com/

Y por lo que lei, en matlab 8 usando el simulink puedes exportar o usar un compilador. Suerte.


----------



## Ardogan (Nov 12, 2008)

Es un tema muuuuuuy interesante (para mí por lo menos), poder hacer todo un sistema de control y poder mandarlo derechito al PIC es un sueño.

Lo poco que de lo que tengo noción es que, desde el Simulink, se puede generar código C para diferentes plataformas.
Microchip provee un blockset para trabajar con los dspic33f; pero es un poco caro para mi bolsillo: U$S1495   
No sé si otros fabricantes proveen un blockset gratuito. El que lo haga goza de mi mayor simpatía.

Lo que se podría intentar es usar el Real Time Workshop del Simulink, para generar código para sistemas embebidos (Real  Time Workshop Embedded Coder). Cómo no tengo la más mínima idea.

Igualmente, no creo que vayas a poder hacer algo sin tener que aprender a programar un pic en C por lo menos. Pero si conseguís material sobre como pasar del Matlab a PIC (como generar código a partir del Matlab/Simulink, si se pueden usar librerias para procesamiento de señales) postealo que es un enlace fenomenal entre los sofisticados sistemas de control que uno ve en la facultad, y la realidad de tener que meterlo en unos cuantos Kb de memoria con recursos limitados.

Saludos


----------



## gonzalo5 (Nov 18, 2008)

Como lo han dicho antes es bien dificil pasar del matlab a un programa con cualquier programa assembler para pic... ahora mi aporte es decir, que no existe ningún programa para ese fin, es para ahorrarte la búsqueda.... Ahora otra cosa seria utilizar el lenguaje de programación que tiene el matlab ya que este se programa con un lenguaje muy parecido a programar en "C" un pic, salvo claro algunas funciones q no tiene en comparación con el matlab, como suma, resta, el sub, o la matriz d zeros, entre otros, claro para programar en C se tendría q hacer una sub rutina pequeña para cada uno...


----------



## ingenio (Oct 3, 2009)

hasta donde yo tengo entendido no es posible lo que usted quiere matlab es una herramienta o mas bien el lenguaje que se utilizan son distintos empezando que uno es de bajo nivel y el otro no


----------



## arielanda (Oct 3, 2009)

hola perdona mi pregunta pero no encuentro donde hacer esta pregunta y vi que estuvistes conectado no mas de 30 minutos atras y capas que estas en linea todavia. bueno mi pregunta es si se puede y como cambiar de un pic 16c745 a un 18f2550 usando el mismo hex y si se puede y hay que cambiar algo que seria u como lo ago. muchas gracias


----------



## Chico3001 (Oct 4, 2009)

Si el programa es en C es relativamente facil... solo tienes que cambiar librerias y renombrar variables que hagan uso de los modulos del chip, pero si el programa es en ensamblador entonces practicamente tienes que reescribir el programa entero.....

Pero si no tienes el codigo fuente (solo tienes el hex) entonces olvidalo... es mision casi imposible...


----------



## arielanda (Oct 4, 2009)

Chico3001 dijo:


> Si el programa es en C es relativamente facil... solo tienes que cambiar librerias y renombrar variables que hagan uso de los modulos del chip, pero si el programa es en ensamblador entonces practicamente tienes que reescribir el programa entero.....
> 
> Pero si no tienes el codigo fuente (solo tienes el hex) entonces olvidalo... es mision casi imposible...


hola chico3001 gracias por tu respuesta tengo todo los ensambladores del pic 16c745 pero el tema es que recien estoy enpesando con los pic y se me complica mucho en realidad no entiendo nada de codigo. por casualidad no sabras de algun programa en español? es decir que pueda yo utilizar para cambiar estos datos que me estas diciendo y si puede ser una guia util detallada de que comandos debo cambiar ya que de ingles 0 al as yo. desde ya muchisimas gracias.. en caso de no poder conseguir lo que estoy necesitando me lo podrias hacer vos ese cambio de pic? es del pic 16c745 al pic 182550?


----------



## Chico3001 (Oct 4, 2009)

Casi nunca vas a encontrar programas de ese tipo en español.... yo me aventuraria a decir que el 90% estan en ingles, en cuanto a ayudarte lo siento pero yo no manejo C para PIC y realmente solo he manejado los PICs de la serie 16, asi que las nuevas series (17 a 32) las desconozco totalmente

Tutorales de programacion hay muchos en este foro, solo date una vuelta por los temas marcados como "Destacados" y ve leyendo los ejemplos o viendo los videos, solo te recuerdo que en el foro no aplica la ley del menor esfuerzo ("No hacer nada y conseguirlo todo") asi que nadie te va a ayudar con esa conversion, tienes que poner algo de tu parte para poder lograrla.... 

Saludos....


----------



## arielanda (Oct 4, 2009)

ok muchas grasias voy a ver que sale de todo esto. y si soy un poco bago pero con intentar no pierdo nada voy a ver si consigo algo que me explique bien simple lo que ya me has dicho vos del tema. es genial que alla gente como vos y que existan estos foros que sin conocernos me allas orientado de una forma sin bueltas y no tratando de sacar ventaja de algo.de nuevo mil gracias


----------



## ArturoG23 (Oct 16, 2020)

Buenas noches alguien sabe como puedo sacar el .hex de matlab?


----------



## Scooter (Oct 17, 2020)

Claro ya mismo te lo explico: No puedes.


¿Sabes que es un .hex y cómo trabaja matlab?
Piensa un poco y verás que no tiene sentido lo que planteas.
Ningún sentido.

O bueno, si, un .hex se puede hacer de cualquier archivo imaginable. Lo que obviamente no será un ejecutable de un microprocesador, será lo que es; un archivo con datos en un determinado formato.

El .hex es un archivo asccii que lleva dentro la definición de un volcado de memoria.

Matlab trabaja como lenguaje interpretado sobre un PC de escritorio.

Cualquier archivo del pc se.pudes hacer .hex sin más pero claro, ese archivo no lo puedes ejecutar en un pic.

Para ejecutar algo en un pic necesitas un ensablador o un compilador que genere código ejecutable, ese código se convierte en .hex que es lo que la programadora admite..

Necesitarías un intérprete/compilador de matlab que genere código ejecutable pic. Que lo mismo existe porque hay librerías de todo. Pero directamente sin más, si nadie lo hizo, no se puede.


----------

