• Martes 5 de Noviembre de 2024, 12:32

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - jgpeiro

Páginas: [1]
1
Microcontroladores / Validador De Numeros Primos Y Lcd 16x2
« en: Jueves 10 de Noviembre de 2005, 02:25 »
Aqui os dejo un programa que valida y muestra en una pantalla el numero primo entre 0 y 2^32.

;1-Inicio Div=3, Dis=2.
;divsqrt=SQUARE_ROOT(DIV)
;2-Ejecutar Div/Dis.
;3-¿Res==0?
;   3Si-Div NO es primo, Div=Div+2, Dis=2, ld=0, Ir a calcsqrt.
;   3No-¿Dis>DivSqrt?
;      3NoSi-Div SI es primo, Tabla[sv]=Div ,sv++ ,ld=0 ,Div=Div+2, Dis=2, Ir a calcsqrt.
;      3NoNo-Dis=Tabla[ld], ld++ Ir a 2.
;sv apunta en la Tabla a la direccion que hay que salvar.
;Cuando se detecta un numero primo de mas de 14 bits ya no se almacenan mas, ni se incrementa sv.
;ld apunta en la Tabla a la direccion que hay que cargar.
;Cuando ld supera el valor de sv (dis>16384) no carga mas primos de la tabla e incrementa Dis de dos en dos.

Si alguien lo quiere tb puedo poner el include necesario xa enviar datos al LCD y los archivos para el Proteus ISIS.

2
Microcontroladores / Leer Y Ejecutar Programa De Una Eeprom Externa.
« en: Miércoles 17 de Agosto de 2005, 21:46 »
Pues eso, estoy diseñando un circuito con un PIC conectado a una EEPROM.

Mi intencion es almacenar el programa principal (configuraciones, ISR...)en la flash del  PIC y las rutinas en la EEPROM y que el PIC las copie a su flash ,cuando el programa principal las solicite, para ejecutarlas.

-¿que soluciones hay para esto? parece facil pensar que simplemente compilo la rutina como si empezase en la linea del programa 800(x ejemplo)y cada vez que se necesita se carga en la flash y ya ta.
-¿Pero que ocurre si esta rutina ocupa mas de lo que cabe en el PIC? podria hacer que el propio PIC la partiese en cachos y se fuese copiando y ejecutando los cachos?
-¿Que ocurre si durante la ejecucion de un cacho de rutina, este llama a un cacho de rutina que no ha sido cargado xq no cabia?
-¿Que ocurre si durante la ejecucion de una rutina,se genera una interrupcion y esta misma necesita cargar de la EEPROM otra rutina distinta?

Llevo un par de dias y creo que he encontrado una solucion algo complicada y probablemente irrealizable. Estos serian los pasos a seguir:
1 Que el propio PIC parta las rutinas en cachos que quepan dentro del PIC.
2 leyendo instruccion a instruccion el cacho de rutina a cargar y modificando todos los brach, call y goto que ayan.
3 Ademas creando una PILA STACK para las rutinas que se van llamando y cargando., y que cada vez que se genera una IRQ durante la ejecucionde una rutina se guarde el "nombre" de la rutina q estaba ejecutandose.

No existen soluciones mas sencillas para esto? A mi me mosquea un poco que un PIC tenga una memoria de programa de 48Kbytes y un ProgramCounter de 24bits...

Por cierto, tengo en cuenta que el tiempo de escritura de un byte de flash (x ejemplo 2mS), pero creo que puede ser despreciable xq he pensado que en 1000 lineas de programa (2segundos en cargarse) se puede meter un programa que tarde mucho mas en ejecutarse.

En unos dias are un dibujo de como pienso que se podria solucionar.

3
C/C++ / Mi Solucion De El Gato En El Sombrero
« en: Martes 12 de Julio de 2005, 02:54 »
Solo so ocupa de realizar los calculos, no se permite introducir ni extraer datos en el archivo ejecutable, ni sikiera esta listo para ejecutar, pero se puede insertar en cualquier codigo fuente con cortar y pegar y se pueden variar los valores de entrada antes de compilar...
Lo realiza con un compilador para microchips, asi que no se si sera compatible con los compiladores mas utilizados para c++... bueno, ahi va:
Ley ayer el problema del gato, y no e mirado por supuesto ninguna solucion en mensajes anteriores(salvo el dibujo con los gatos de junk) y e tardado unas horas en resolverlo....he comprobado con unos cuantos codigos y me funciona...


///EL GATO EN EL SOMBRERO//////////////////////////////////////////////
float gatosA=0, gatosL=0;
//   gatosA=0    Altura de nuestro gato
//   gatosL=0    Gatos que limpian(altura 1)
gatosA=9;//3//5//9//216//64   //Declaracion de la Altura de nuestro gato.
gatosL=4;//2//4//4//125//27   //Declaracion del Numero de gatos que limpian

//gatos por sombrero
float gatosNA=0, gatosNAi=0 , gatosS=0, gatosSi=0;
//   gatosNA=0   Numero de Alturas de gatos
//   gatosNAi=0   Incremento
//   gatosS=0    Gatos por sombrero , o mejor dicho posibles sombreros
//   gatosSi=0    Incremento
//gatos Altura
float gatosAct=0, gatosActT=0, gatosAi=0, gatosAnt=0, gatosAT=0;//Altura total de los gatos
//   gatosAct=0   Es el numero de Altura de gatosa en el que estamos
//   gatosActT=0   El la suma de las alturas de todos los gatos de el numero de altura en el que estamos
//   gatosAi=0    Incremento
//   gatosAnt=0    Altura del gato anterior
//   gatosAT=0   Altura total de los gatos


////Comprobar si Concuerda con la altura de nuestro gato
gatosNA=0; gatosNAi=0;//gatosNA no es usada
for (gatosNA=0 ; 1!=gatosAct ; gatosNAi++)
   {
//gatos por sombrero
gatosS=0; gatosSi=0;
   for (gatosSi=0 ; gatosL>gatosS ; gatosSi++)
      {
      gatosS=pow(gatosSi+1,gatosNAi+1);
      }
//gatos Altura
gatosAct=0; gatosActT=0; gatosAi=0; gatosAnt=0; gatosAT=0;
   for ( gatosAi=0, gatosAct=gatosA ,gatosAT=gatosA ; gatosNAi>=gatosAi ; gatosAi++)
      {
      gatosAnt=gatosAct;
      gatosAct=gatosAnt*1/(gatosSi+1);
      gatosActT=gatosAct*(gatosS/(pow(gatosSi,gatosNAi-gatosAi)));
      gatosAT=gatosAT+gatosActT;
      }
   }

//gatos NO trabajan
float gatosnT=0, gatosnTi=0;
//gatosnT=0      Numero total de gatos
//gatosnTi=0      Incremento
for   (gatosnTi=0 ; gatosNAi>gatosnTi ; gatosnTi++)
   {
   gatosnT=gatosnT+(gatosS/(pow(gatosSi,(gatosNAi-gatosnTi))));
   }
//gatosnT=gatosnT-gatosL;

gatosnT=gatosnT;//Devuelve el numero de gatos que no trabajan
gatosAT=gatosAT;//Devuelve la suma de las alturas de todos los gatos

float FIN_GATO=0;
}
//FIN de gato sombrero

4
Microcontroladores / Iar Embedded Workbench Professional Pic18
« en: Martes 7 de Septiembre de 2004, 20:07 »
He intalado este paquete de soft. concretamente IAR.Embedded.Workbench.for.Microchip.PIC.v2.21A.FULL-YgH que me baje con el emule para probarlo a ver que tal....a primera vista no me e aclarado para nada, parece que tambien permite crear diagramas de flujo com el niple, aunque de una manera mas complicada...no se, si alguien en este foro tiene experiencia con este soft...espero me digais vuestras impresiones...

5
Microcontroladores / Rtos Para Pic18
« en: Viernes 23 de Julio de 2004, 14:48 »
Pues eso, me estoy planteando las ventajas de utilizar un sistema operativo para mi TDB, peor no se las ventajas que tienen ni como funcionan exactamente ni los requisitos de hardware ni apenas nada de nada. Me gustaria que fuese un linux o algo asi , con el que luego poder utilizar aplicaciones bajadas de la red, o juegos para mobiles o yo q se...bueno, si alguien tiene experiencia en la utilizacion de sistemas operativos en tiempo real con micros y me puede dar alguna info o consejo le estare my agradecido.

6
Microcontroladores / Instruccion Movfwy Bits De Estado
« en: Jueves 10 de Junio de 2004, 13:22 »
pues resulta que cuando ejecuto una instruccion de MOVFW y el valor del regitstro W es 0, se pone a 1 el bit Z del status, cuando en el datasheet de PIC pone clarisimamente que estas instyrucciones no afectan a los bits de estado. Que ocurre aqui? es un fallo del MPLAB? alguien sabe si es q estoy coemtiendo algun error?

7
Microcontroladores / Sspsr
« en: Domingo 30 de Mayo de 2004, 14:29 »
mmm, el SSPSR es un registro interno no accesible directamente para el usuario de los PICs que incorporan el modulo SSP. Se supone que el MPLAB permite ver el estado de este registro en la ventana de SPRs(eso dice en el help), pero no o veo. alguien sabe dnd puedo encontrasr este registro?

8
Microcontroladores / Configuracion Del Periferico Ssp En Pic
« en: Martes 18 de Mayo de 2004, 14:17 »
estoy simulando un 16F88 con el MPLAB, y no se como hacer que el modulo SSP en modo SPI funcione. Alguien tiene experiencia con este modulo? alguien tiene algun .asm en el que se utilice este modulo?

9
Microcontroladores / Experiencia Con Rtos Sobre Un Pic
« en: Sábado 28 de Febrero de 2004, 10:47 »
Pues me gustaria saber que ventajas e inconvenientes tiene utilizar un sistema operativo , o un sistema operativo en tiempo real en un microcontrolador PIC.

Tambien me gustaria saber un poco como se realiza un programa para que funcione bajo ese SO, empresas que los ofrezcan(los SO) y... no se, quisiera que alguien me comentase un poco su experiencia.

10
Microcontroladores / El Ojo Que Todo Lo Ve!!!
« en: Sábado 21 de Febrero de 2004, 11:28 »
mmmm, esto es solo una idea de un proyecto que tengo en mente hace unos meses.
El aparato deberia incorporar una pantalla a color como la de una camara digital, y poco mas, baterias recargables y opcional posibilidad de conectarlo al PC.

El tiempo de vida del aparato podria ser de 5 años(por decir un tiempo).
El aparato lleva una RAM del mismo tamaño en pixels*pixels*colores que la pantalla. Por ejemplo para un display de 320ancho*240largo*16777216colores necesitariamos una RAM de 320*240*2 bytes= 230400bytes. Un micro de 8bytes.
El micro empieza con el primer registro de la RAM, incrementandolo , y enviando toda la RAM al display.Despues vuelve a incrementar este registro de RAM, si es mayor de 256 incrementa el registro 2...asi con los 230400bytes. Pongamos una media de 10 incrementos por segundo.
Y ahora nos preguntaremos para que sirve todo esto....pues el aparato va a sacar por l pantalla LCD todas las combinaciones posibles, esto significa que si nos quedamos mirado la pantalla podemos ver el futuro!!, el pasado!!, nuestros sueños!!, y a nosotros visitando lugares dnd nunca hemos estado, tambien me vereis a mi, mi casa y mi habitacion, a mi en buestra boda, a mi en buestra boda bailando con carmen electra....el aparato va a generar TODAS LAS IMAGENES posibles, y esto se escapa a nuestra imaginacion.

Lo cierto es que el aparato no tiene mucha utilidad puesto que el tiempo que tarda en generar todas las imagenes es ((320*240)elevado a 16777216)/10 segundos, esto nos da un numero de segundos que...bueno, asi en frio se podria pensar que escrito dara lavuelta a la tierra en espiral.
Pero el aparato funciona, y tendria mucho gancho el ofrcerlo como algo que te va a mostrar tanto el futuro, como tus sueños, como tus examenes, como los dibujos de tu infancia.... no se, pensais que se podria encontrar la forma de vender un aparato asi? o que todo el interesado preguntaria hasta encontrar el dato de el tiempo que se necesita xa mostrar todas las combinaciones?

11
Microcontroladores / Evaluacion De La Idea De Mi Proyecto
« en: Sábado 27 de Diciembre de 2003, 16:12 »
Estoy trabajando en el diseño de un aparato electrónico y me gustaría que alguien con experiencia en el diseño de pequeños aparatos electrónicos me diese su opinión.
El aparato consiste en un controlador de LCD grafico, capaz de leer los datos de una EEPROM serie ,elaborar el texto y sacarlo a través del LCD. Se controla a traves de movimientos que capta con un accelerometro de dos ejes.  
El circuito consta de un LCD de un nokia 5110, un PIC 16f84, dos EEPROM serie 24fc515, y un acceñerometro ADXL210E
el controlador del LCD mide 34x40x15mm(con el display y las baterias incluidas).
Al LCD se le puede kitar una lamina de plastico superior y que solo se pueda leer mirando a través de esta.
El consumo del circuito debe ser muy muy pequeño. La grabación de los datos se realiza utilizando un acoplador y a través de un TE-20.
El circuito permanece siempre encendido,en modo bajo consumo, y pasa a modo usuario, cuando se realizan unos movimientos determinados.
Tengo que realizar las rutinas que me permitan comunicar el PIC con las EEPROM, con el LCD, e interpretar los datos del accelerometro. El problema es que me gustaria escribirlas en C, pero no su compatibilizar el PICCLITE ocn el MPLAB...
Pienso que si este circuito tuviese éxito podría venderse como un kit o algo así. No sé que más puedo decir si alguien quiere mas información puedo proporcionar todos los docuemntos que tengo. Los programas que más estoy utilizando MPLAB, el PICCLITE, el PROTEL DXP, el proteus...

Páginas: [1]