|
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.
Mensajes - jgpeiro
26
« en: Lunes 23 de Febrero de 2004, 10:49 »
sip, lo se, pero de mmnto prefiero elaborar lo que mas o menos tengo en mente. una vez todo esto este realizado, si que kiero añadirle algunas cosas(como la posibilidad de almacenar y mostrar dibujitos). Ahm, recorede una cosa que yo pense xa mi emisor de infrarrojos en su dia. Nada mas q yo lo hice con dos botones, y cuando se pulsaba uno la frecuencia era de 1Khz. Cuando se pulsaba el otro, la frecuencia era de 2Khz. Cuando se pulsaban los 2 a la vez emitia con una nueva frcuencia de 2.7Khz. En fin, espero que este consejo te sea de utilidad
27
« en: Sábado 21 de Febrero de 2004, 14:35 »
nop, en la practica vas a ver una imagen negra durante toda tu vida con algunos pixes las dos primeras lineas que van cambiando.... pero podriamos hacer que el dispositivo se conectase al PC y que se cargase una imagen, a partir de esta imagen el dispositivo sigue contando...eso le daria algo mas de juego
28
« 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?
29
« en: Viernes 20 de Febrero de 2004, 16:24 »
lo dicho.... Me queda explicar un nuevo metodo para crear un buffer en la RAM con una fila entera de 84 bytes con los pixels que tienen que tienen que ser pintados en el LCD. ......Pero para explicar estos ultimos buffers asi como el aspecto del cursor are unos dibujitos
Tambien tengo un nuevo algoritmo para transformar los 7 caracteres a 6 lineas mas rapido que el que propuse en post anteriores.... ...bueno, este es el dibujo...
30
« en: Viernes 20 de Febrero de 2004, 16:22 »
lo dicho.... Me queda explicar un nuevo metodo para crear un buffer en la RAM con una fila entera de 84 bytes con los pixels que tienen que tienen que ser pintados en el LCD. ......Pero para explicar estos ultimos buffers asi como el aspecto del cursor are unos dibujitos
Tambien tengo un nuevo algoritmo para transformar los 7 caracteres a 6 lineas mas rapido que el que propuse en post anteriores.... ...bueno, este es el dibujo...
31
« en: Jueves 19 de Febrero de 2004, 21:51 »
mmmm, nuevas subrutinas. la memoria EEPROM externa lleva un banco con todos los caracteres en ASCII dijujados de tal manera que una l (en ASCII 81hex)seira: 81x5=285h 285$ 11111111 286$ 00000000 287$ 00000000 288$ 00000000 289$ 00000000 280$ 00000000 un total de 256 caracteres x 5bytes = 1280Bytes. (direcicon 500h) De esta manera, leyendo un byte con un caracter en ASCII y multiplicandolo x 5 direccionamos rapidamente hasta las posiciones de memoria de la EEPROM que contienen el "dibujo" del caracter.
En las siguientes direcciones a partir de la 500h se encuentra toda la informacion de MENUS, con su NUMERO de MENU, MENU PC OK, MENU PC CANCEL, MENU NOMBRE, MENU CONTENIDOS.
A Menu Numero AB Menu PCOK BC Menu PCCANCEL CD Menu Nombre DE Menu Contenidos E
A: indica que los datos hasta nueva A van a indicar el Menu Numero B: indica que los datos hasta nueva B van a indicar el Menu PCOK idem con la C,D y E.
El Menu Numero tiene un tamaño fijo de 3 bytes El Menu PCOK tiene un tamaño fijo de 2 bytes El Menu PCCANCEL tiene un tamaño fijo de 2 bytes El Menu Nombre puede cualquier tamaño El Menu Contenidos puede cualquier tamaño
El Menu Numero esta estructurado en 6 datos de 4 bits que pueden ir del 0 al 11 lo que da un maximo de 14000 menus distintos(aunque no cabrian en la EEPROM)
El Menu PCOK son dos bytes con la direccion que habria que introducir en el program counter del micro si el usuraio hace un movimiento de OK y el cursor esta sobre ese menu)
El Menu PCCANCEL son dos bytes con la direccion que habria que introducir en el program counter del micro si el usuraio hace un movimiento de CANCEL y el cursor esta sobre ese menu)
El Menu Nombre son los caracteres que se muestran cuando un menu esta cerrado
El Menu contents son los caracteres que se muestran cuando un menu esta abierto
Cuando el dispositivo arranca va a la direccion de EEPROM 501h y busca A INC EEADDR (la direccion EEPROM a leer) mobemos los 3 bytes del Menu numbre a la RAM en Actual Menu y buscamos de nuevo A. ahora buescamos la siguiente B almacenamos en la RAM en ACTUAL Menu PCOK, con la C lo mismo y ahora buscamos D... EEDATA=D MOV (84-ancho de la barra) to BFERC label 1 INC EEADDR SAVE EEADR in CADDRP READ EEPROM EEDATA = D? ---SI----> desde BFERC hasta final pintar 0. IR a Mostrar Multip`licar EEDATA x 5, resultado en EEADDR label2 MOV BFERC to FSR READ EEPROM MOV EEDATA to W W=0? --------SI-------> "caracter terminado". Pintar espacio. IR a label 1 MOV W to INDF INCFSZ BFERC ----0----->"Linea terminada". IR a Mostrar DECFSZ CP----0----> "caracter terminado". Pintar espacio. IR a label 1 INC EEADDR IR a label 2
Me queda explicar como pintar un cursor en la pantalla acorde con la posicion actual en funcion de los movimientos. Me queda explicar como invertir el color (B/W) de un menu cuando el cursor esta encima de este Me queda explicar como se pintauna barra a la izq. de la pantalla.
Me queda explicar un nuevo metodo para crear un buffer en la RAM con una fila entera de 84 bytes con los pixels que tienen que tienen que ser pintados en el LCD. Me queda explicar como se hace un buffer para tranformar las 7 lineas de texto que aparecen en la pantalla a 6 lineas que caben en la pantalla.
Pero para explicar estos ultimos buffers asi como el aspecto del cursor are unos dibujitos
Tambien tengo un nuevo algoritmo para transformar los 7 caracteres a 6 lineas mas rapido que el que propuse en post anteriores....
en fin, si alguien comprende todo esto que pongo y me quiere sugerir algo...
32
« en: Domingo 15 de Febrero de 2004, 14:17 »
Es todo el aparato. No es dificil si le heaces sin prisas. De todas maneras siempre necesito varios intentos xa conseguir unas placas decentes...lo mas importante es tener unas transparencias buenas. Yo imprimo el dibujo en un folio ampliado 2 veces, y lo llevo a una copisteria pido que me lo fotocopien sobre una transparencia reducido al 50%. El resto del proceso ya lo conoceras...
33
« en: Jueves 12 de Febrero de 2004, 18:20 »
el aparatito utilizaria si no recuerdo mal 12 pilitas de boton de 9mm radio y 3 de alto cada una con una capacidad de unos 35mAh. Estube calculando y con 12 baterias de estas dimensiones pero de nimh se obtendria una capacidad de 60mAh. Las pilas van detras del dispositivo, pegadas a el, recuerda que 34x40x12mm... bueno, los movimientos para manejar el aparatito no necesariamente tienen xq ser unos movimientos exagerados supongo que simplemente moviendo los dos dedos cn los que sujetamos el aparato bastaria, pero esta claro que pulsar botones en un boli es mas disimulado...en fin, d mmnto seguire cn este sistema.
34
« en: Miércoles 11 de Febrero de 2004, 15:26 »
de momento estamos limitados al tamaño de la pantalla, que es de 34x40mm, el PCB tiene el mismo tamaño, y las baterias para una autonomia de 10-15 horas de uso miden lo mismo. El tamaño total del circuito con baterias es de 34x40x12mm con baterias y todo. Si queremos usarlo de relog basta con ponerle una correa...
35
« en: Martes 10 de Febrero de 2004, 20:50 »
si, las primeras versiones de mi proyecto funcionaban con un boli con pulsadores que transmitia las señales por medio de infrarrojos, pero luego conoci los acelerometros y me gusto incluirlos de alguna manera en el diseño. Una delas formas que mas me han gstado para disimular el aparato es quitarle al LCD una de las laminas de plastico que llevan en la parte superior. Solo quien mire a traves de esta lamina podra distinguir entre un pixel pintado yuno sin pintar,de tal manera que mientras los demas ven el LCD en blanco, tu puedes estar leyendolo a traves de unas gafas con esa laminita. xq dices que puedes hacer esto con esas configuraciones de PIC unicamente? es xq estas pensando en usar chips de estos que se usan xa targetas de pirateria? no me lo he planteado, pero desde luego se puede conseguir un gran ahorro de espacio...aunqe quizas se quede corto en cuanto I/O... en fin, agradezco enormemente tu interes y espero leer mas post que no sean mios...ejejej
36
« en: Martes 10 de Febrero de 2004, 18:58 »
vamos a ver....el dispositivo muestrea constantemente una tension, cuando excede unos limites almacena el valor de la tension, la hora y la fecha. El resto de muestras las elimina? Cuantas veces se debe muestrear a tension por segundo?, lo pregunto x si no se pueden despreciar las muestran que esten dentro de los margenes. Si podemos enviar datos por un modem la memoria puede ser mucho mas pequeña(podria bastar con 256Kbytes), y haciendo...2 llamadas diarias ....de menos de 1 minuto podemos enviar todos los datos al PC. Podrias disponer de un hilo de telefono xa conectar un modem en el lugar en el que instalases el aparato??
37
« en: Martes 10 de Febrero de 2004, 15:05 »
ahm, la memoria que comentaamos de capacidad de 1Mbit, son 128Kbytes... bueno, este pos lo q keria pedirle a imarte es que des algo mas de informacion sobre tu proyecto. ahm, y tb mencionar la pagina de www.mp3projects.com en la que hay proyectos de reproductores portatiles con sus respectivos liks.Algunos usan memorias de este tipo y pueden ofrecer datasheets, esquemas o cosas a tener encuenta a la hora de deseñar el circuito con estos dispositivos....
38
« en: Martes 10 de Febrero de 2004, 15:01 »
Smartmedia Card o Compact Flash, son los dos tipos que hay actualmente en el mercado. Solo hay que buscar en el google y poner +datasheet o .pdf o algo asi, y saldra casi solo....suerte, ahora es q no tngo tiempo xq tngo q ir a poner la mesa...ejjeje
39
« en: Lunes 9 de Febrero de 2004, 22:32 »
yo estube mirando xa mi diseño esa memoria, y al final me decidi por una igual pero con bus SPI. Son las EEPROM serie que mas capacidad tienen que yo encontre, una capacidad de 256kBytes, pero no es suficiente puesto que necesitamos 10Mbytes. Creo que como solo tienen un pin de seleccion de pagina (A1) de una forma sencilla solo se podrian conectar 2 dispositivos lo que nos daria una capacidad de 0.5MÇBytes, cuando necesitamos 20 veces mas....Aun pudiendo conetar mas memorias y que sean direccionables desde el micro, no vamos a poner 40.....
40
« en: Sábado 7 de Febrero de 2004, 20:55 »
el fabricante debe ofrecerlas a traves de su web. www.mot-sps.com si no recuerdo mal(de motorola). Pero vamos, es muy facil que cueste ese precio que comentas(200$). De todas formas no creo que te resulte imprescindible, puedes trabajar con otro micro o cn algun basic stamp. Informacion en la red sobre robotitos que la gnt se fabrica hay suficiente para que te canses, solo busca en el google +ROBOT +PIC o +ROBOT +68HC11 o cualquier micro que se te ocurra y vas a encontrar info...ademas la mucha gente comenta paso a paso como ideo y construyo su propio robot y todos los problemas con los quese fue topando... en fin, solo necesitas edicarle tiempo y algo e dienrillo...
41
« en: Sábado 7 de Febrero de 2004, 16:52 »
mmmm, salen unos 15*24*60*60=1296000 de segundos tomemos 8 bytes segundo en total...1296000*8=10368000 en total salen 10368000:(1024*1024)= 9.8MBytes
como obtienes estos datos? es de algun sensor? el sensor va a variar mucho en cada medida? se me ocurre que se podria aplicar algun algorithmo de compresion puesto que si solo son 1muestra x segundo hay mucho tiempo para procesar, el problema seria como conseguir un algorithmo adecuado...
Se podria tratar de que el micro no almacense los datos que no fuesen necesarios esos datos para que van a ser usados? los vas a pasar a un PC?
No seria tan dificil trabajar con las memorias flash que se usan para las camaras fotograficas (aunque algunas tienen muchos pines), solo tienes queencontrar la info adecuada, yo te podria ayudar a encontrarla en la web si t decides x esa solucion. otra solucion, los almacenas en una EEPROM, cuando la EEPROM esta llena, los envias con un mobil con modem hasta tu hogar, nd los recibes cn otro mobil y los almacenasen el PC.
Todo esto llevaria trabajo, kizas lo mas facil sea buscar memorias RAM con alta densidad, poniendo varias si es necesario para simplemente tener mas de 10MBytes.
De todas maneras, da mas datos hacerca del proyecto, dnd va a estar situado, limitaciones de tamaño que poria tener, que datos va a tomar....no se, cuanto mas sepa mas te podre ayudar
42
« en: Jueves 5 de Febrero de 2004, 20:25 »
Las rutinas basicas: 1 LEDs controller: Utiliza de 4 a 8 registros de la RAM. Se ejecuta cada x segundos por una interrupcion de TMRx. 2 Acc reader: Utiliza 4 a 10 registros de la RAM Se ocupa de leer datos analogicos de AccX y AccY 3 Acc interpreter: Utiliza de 10 a 20 registros de la RAM se ocupa interpretar los datos leidos por el Acc reader 4Cursor mov.: se ocupa de variar la posicion del cursor en funcion de Acc interpreter 5 EEPROM R/W se ocupa de acceder a la EEPROM externa para escribirla o leerla 6Menu pointer Se ocupa de marcar que menu se muestra en primera inea de pantalla, que menu esta seleccionado 7Screen Gen Se ocupa de decodificar los caracteres de cada menu, de pintar el cursor en el lugar adecuado y de invertir el menu seleccionado. 8LCD config Se ocupa de configurar el LCD y de enviarle DATOS
43
« en: Lunes 19 de Enero de 2004, 20:24 »
diagrama de flujo general del Acc. Interpreter
44
« en: Domingo 18 de Enero de 2004, 23:03 »
LCDXYB1L
movlw 100 movwf FSR,F
movwf INDF,w movwf TXREG,f
movlw 39 addwf FSR,w
rrf INDF,f
bsf TXREG,7
btfss STATUS,c
bcf TXREG,7
movlw 37 subwf FSR,f ;(FSR-37=FSR)
subwf FSR,w ;(FSR-38=w)
btfss STATUS,z
goto LCDXYB1L END
Me gustaria saber como conseguir las operaciones de FSR-38=w con los minimos ciclos posibles. con la instruccion subwf FSR,w ,lo que hago es restar el valor de FSR a 38, y lo que pretendo es restar 38 al valor de FSR. si despues de jecutar subwf FSR,w, ejecuto la intruccion de complement rega,w y en rega hay un valor de 0? o despues de subwf FSR,w le sumo 128 a w?
45
« en: Miércoles 14 de Enero de 2004, 20:25 »
digamos que el LCD lo escribiria asi primero de Y0,X7 hasta Y0,X83, Y1,X7 hasta Y1,X83...... Y5,X7 hasta Y5,X83, despues desde Y0,X0 hasta Y0,X6,Y1,X0 hasta Y1,X6,..........Y5,X0 hasta Y5,X6.
El metodo que planteo mas adelante permite enviar al LCD 7 lineas de texto, y aun me queda pensar como hacer para escribir en el LCD una barra(como un pequeño menu al borde de la pantalla)con 6 botones que apareceria en la posicio Y0,X0 hasta Y0,X6,Y1,X0 hasta Y1,X6,..........Y5,X0 hasta Y5,X6.
En la memoria RAM 4 bancos. Dos consecutivos de 38 (R1H y R2H)bytes y otros dos consecutivos de 39 bytes(R1L y R2L). Primero generamos el texto que queremos mostrar en esos dos bancos leyendolo de la EEPROM. Ponemos el LCD en la direccion Y0,X7. Segundo cogemos la direccion del primer byte del banco 1 y lo metemos en el FSR. Despues copiamos INDF al TXREG. Sumamos 38 al FSR para desplzarlo al R2H. Rotamos 1 vez a la izq y testeamos "carry", si es 1 ponemos a 1 TXREG,7. enviamos TXREG al LCD. ahora restamos 37 al FSR, restamos 38 y comprobamos si es 0, si no volvemos al principio.......bueno,mejor lo pongo en ASM y are un dibujo mejor... Me gustaria saber si las operaciones del INDF provocan alteraciones en STATUS REG...alguien lo sabe La primera linea de texto no se rota, la segunda se rota x1, la tercera x 2, la cuarta x 3, la quinta x 4, la sesta x -3 y la saeptima x -2.
;Screen Generator ;LCD XYB1H ;Generar B1L en R1L ;Generar B1H en R1H ;Generar B2L en R2L ;Generar B2H en R2H ;set LCD ADDR ;mov RlADDR to FSR ;mov indf to TXREG ;ADD 38 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB1H
;LCD XYB1L ;mov R2ADDR to FSR ;mov indf to TXREG ;ADD 39 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB1L
;LCD XYB2H ;Generar B3L en R1L ;Generar B3H en R1H ;set LCD ADDR ;mov RlADDR to FSR ;mov indf to TXREG ;ADD 38 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB2H
;LCD XYB2L ;mov R2ADDR to FSR ;mov indf to TXREG ;ADD 39 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;got LCD XYB2L
;LCD XYB3H ;Generar B4L en R2L ;Generar B4H en R2H ;set LCD ADDR ;mov RlADDR to FSR ;mov indf to TXREG ;ADD 38 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,5 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB2H
;LCD XYB3L ;mov R2ADDR to FSR ;mov indf to TXREG ;ADD 39 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,5 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;got LCD XYB2L
;LCD XYB4H ;Generar B5L en R1L ;Generar B5H en R1H ;set LCD ADDR ;mov RlADDR to FSR ;mov indf to TXREG ;ADD 38 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,4 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,5 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB2H
;LCD XYB4L ;mov R2ADDR to FSR ;mov indf to TXREG ;ADD 39 to FSR ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,4 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,5 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RRF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;got LCD XYB2L
;LCD XYB5H ;Generar B6L en R2L ;Generar B6H en R2H ;set LCD ADDR ;mov RlADDR to FSR ;mov indf to TXREG ;ADD 38 to FSR ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,5 ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB2H
;LCD XYB5L ;mov R2ADDR to FSR ;mov indf to TXREG ;ADD 39 to FSR ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,5 ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;got LCD XYB2L
;LCD XYB6H ;Generar B3L en R1L ;Generar B3H en R1H ;set LCD ADDR ;mov RlADDR to FSR ;mov indf to TXREG ;ADD 38 to FSR ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;goto LCD XYB2H
;LCD XYB6L ;mov R2ADDR to FSR ;mov indf to TXREG ;ADD 39 to FSR ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,6 ;RLF INDF,f ;esto funcionaria? ;BTFSS STATUS,c ;esto funcionaria? ;BSF TXREG,7 ;SEND TO LCD ;SUB 37 to FSR ;sub 38 to FSR,w ;!!!el resultado en W ;btfss STATUS,0 ;got LCD XYB6L
46
« en: Martes 13 de Enero de 2004, 20:40 »
ahm, e pensado que las letras minusculas podrian estar en la eeporm del 16f88, incluso que las vocales minusculas podrian estar en la RAM. este dibujo no es sencillo de comprender, es el metodo xa generar 7 lineas de texto verticales y enviarlas al LCD en 6 bytes. solo me queda comprobar una pequeña cosa de este ultimo dibujo y ya podria empezar a programar todo....
47
« en: Lunes 12 de Enero de 2004, 20:53 »
no esta terminada esta parte, pero es bastante sencilla asi que la pensare en otro mmnto...bueno aqui va el dibujo
48
« en: Domingo 11 de Enero de 2004, 15:13 »
Esto seria el metodo de lectura de los impulsos dutty cicle con el modulo CCP del 16F88. Queda mucho mas sencillo que el metodo que tenia pensado para el 16F84, y ademas se necesita ejecutarmenos instrucciones que antes. Si el TMR1 se puede configurar con un reloj de 144*65536 se puede obtener una profuncidad de 16 bits en cada medida. Inconvenientes tenemos que solo se toman 144/2 medidas de los ejes X e Y por segundo, pero son suficientes de toda maneras.
49
« en: Domingo 11 de Enero de 2004, 05:19 »
conexiones para el nuevo PCB. Resistencias pull-up en RA4,RB1,RB4 y RA1.
RB0 ACCx RB1 EEPROM SDA RB2 LCD SDI RB3 ACCy RB4 EEPROM SCL RB5 LCD SCK RB6 LED R, ICSP RB7 LED G,ICSP MCLR ICSP RA0 Vbat RA1 Vreg3 SHDN RA2 LCD D/C RA3 LCD RST RA4 LCD CS
50
« en: Sábado 10 de Enero de 2004, 22:39 »
org 0 ;INT: ;POWER UP,CCP,WDT,USART,I2C,EEPROM,TMR0,TMR1,TMR2,ADC
;General Program routines ;Program starter ;For Menu navigator. (SOFTWARE) ;For Acc. Decoder (SOFTWARE) ;For Screen generator (SOFTWARE)
;Subrutines: ;For EEPROM READ (I2C)(RB1,RB4) ;For EEPROM WRITE (I2C)(RB1,RB4) ;For LCD WRITE (USART Synchronous Master Mode)(RA2,RA3,RA4,RB2,RB5) ;For Acc. reader(CCP)(RB0,RB3) ;For LEDs controller (PortB)(RB6,RB7) ;For Vbat indicator (ADC)(RA0) ;For Vreg3 OFF (PortA)(RA1) ;------------------------------------------------------------ org 0004 ;INT. ;BCF INTCON,GIE ;BCF WDTCON,SWDTEN ;BTFSS INT1(power UP) ;GOTO 1 ;BTFSS INT2(CCP) ;GOTO 2 ;BTFSS INT3(WDT) ;GOTO 3 ;BTFSS INT4 ;GOTO 4 ;BTFSS INT5 ;GOTO 5 ;BTFSS INT6 ;GOTO 6 ;BTFSS INT7 ;GOTO 7 ;BTFSS INT8 ;GOTO 8 ;BTFSS INT9 ;GOTO 9 ;BTFSS INT10 ;GOTO 10 ;BTFSS INT11 ;GOTO 11 ;BTFSS INT12 ;GOTO 12 ;BTFSS INT13 ;GOTO 13 ;BTFSS INT14 ;GOTO 14 ;
;POWER ON ;Config 16F88(intterrupts!!) ;CHECK ;APAGAR LCD ;MEDIR VBAT ;MEDIR ACC. ;LEER/ESCRIBIR EEPROM ;¿Verificar LEDS?si esto es posible ;Encender LCD ;Mandar Info. ;WAIT 5 SECONDS ;LCD OFF ;LEDs OFF ;GETOFF
;GET OFF ;PORTS A&B High-impedance ;WDT CONFIG (1seg) ;WDT ON ;SLEEP
;WAKE UP ;if ACCX NO= G or ACCY NO= G, GOTO GETOFF ;if ACCX =G AND ACCY=G during 250mS, LEDGREEN ON ;else GETT OFF ;WAIT 750mS ;LEDRED ON ;WATI 250 ;LED RED OFF ;if ACCX =G AND ACCY=+G during 250mS, LEDGREEN ON ;else GETT OFF ;WAIT 750mS ;LEDRED ON ;WATI 250 ;LED RED OFF ;if ACCX =+G AND ACCY=G during 250mS, LEDGREEN ON ;else GETT OFF ;USER MODE
;USER MODE ;Acc. Intepreter ;Menu Navigator ;Screen Generator
|
|
|