• Domingo 22 de Diciembre de 2024, 02:19

Autor Tema:  Evaluacion De La Idea De Mi Proyecto  (Leído 18763 veces)

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #25 en: Miércoles 14 de Enero de 2004, 20:25 »
0
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
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #26 en: Domingo 18 de Enero de 2004, 23:03 »
0
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?
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #27 en: Lunes 19 de Enero de 2004, 20:24 »
0
diagrama de flujo general del Acc. Interpreter
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #28 en: Jueves 5 de Febrero de 2004, 20:25 »
0
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
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #29 en: Martes 10 de Febrero de 2004, 16:21 »
0
Yo no se mucho de pics, pero soy capaz de integrarlo en un "reloj" de pulsera con el display del telefono movil y hacer un boligrafo que aparte de escribir tenga pulsadores para controlar el reloj por infrarrojos. Eso si, el diseño tiene que ser un pic 16F877 + Eeprom 24LC64 (igualito que el 16F876 en funcionamiento) o un 16F84 + 24LC16B. Aparte estaria bien que el programa diese la hora para disimular... XDDD

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #30 en: Martes 10 de Febrero de 2004, 20:48 »
0
No es mala idea, pero tendriamos que dejar de lado lo del acelerometro y las memorias para mayor capacidad... haber que opina mi amigo, la idea es muy buena, aparte nadie se lo imaginaria, pero tambien me gusta la idea de manejarse sobre el menu con unos movimientos... Ahh Averigue sobre la capacidad de la pila, es de 8 niveles y no hay manera de sobrepasarlos ni crear algo similar, no se puede usar la RAM para nada y lamentablemente deberemos de cambiar de micro, estuve averiguando y el que nos serviria es cualquiera de la serie 18Fxxx, lamentablemente son los unicos que tienen mas capacidad en la pila, lo malo es que disponen de 95 o algo asi de instrucciones, por lo que recomendaria que nos ocupemos y manipulemos con un micro de motorola ya que la diferencia es muy poca y la eficiencia del motorola es maxima. Saludos y suerte :hola:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #31 en: Martes 10 de Febrero de 2004, 20:50 »
0
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
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #32 en: Miércoles 11 de Febrero de 2004, 15:04 »
0
Si, efectivamente es devido a  la gran integracion del chip en esas tarjetas. Tambien se puede con otro tipo de micros (www.todotarjetas.com en la seccion de tarjetas de plastico) pero ya no son pic y no tengo ni idea!!. Lo del accelerometro se podria sustituir por un pulsador que haga correr el texto mientras esta pulsadoa una velocidad suficiente como para copiar a mano lo que aparece en pantalla. Lo de la laminita de plastico es muy buena idea!! tambien habria que incluir un jack mini en el reloj que sirva de puerto de comunicaciones PC para poder introducir los datos desde el programador, pero eso no es problema. Por cierto, recuerdo algo de una rutina para no tener que hacer circuitos antirebote en cada pulsador, eso vendria muy bien para no tener que fabricar antirebotes en cada pulsador del boligrafo-transmisor.

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #33 en: Miércoles 11 de Febrero de 2004, 15:26 »
0
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...
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #34 en: Miércoles 11 de Febrero de 2004, 21:51 »
0
Si, pero estar constantemente manipulando el accelerometro... puede ser muy descarado, por no hablar de las pilas y los cables que colgarian o podrian verse. Existen unas pilas pequeñas de 6v, son como la mitad de una pila de mando a distancia, yo las he tenido y me imagino que en un bazar puedan conseguirse. Tambien supongo que habra otras pilas similares de otros tamaños/voltajes. Tengo un nokia 5110 pero no puedo destriparlo porque es de mi padre, tambien tengo un maxon mx-6869 destripado, el display esta bastante chulo pero no tengo ni idea de las conexiones, me imagino que sera mas complejo que un display sencillo asi que hare pruebas a ver que consigo.

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #35 en: Miércoles 11 de Febrero de 2004, 22:35 »
0
Es sierto lo que dice pagaxus sobre el acelerometro, la idea del infrarrojo esta muy buena, al mover el brazo a cada rato levantarias sospechas... quedarias como un loco, en cambio con una birome eso no seria problema, ya que es lo que menos sospecharian, ni siquiera mirarian a donde estas... pensando un poco me convence mas la birome, que piensas tu amigo???. Saludos :hola:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #36 en: Jueves 12 de Febrero de 2004, 18:20 »
0
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.
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #37 en: Domingo 15 de Febrero de 2004, 13:52 »
0
¿La primera imagen que pones en el post corresponde al controlador del display? esta muy muy currado, no creo que yo pueda conseguir hacer un pcb tan preciso.

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #38 en: Domingo 15 de Febrero de 2004, 14:17 »
0
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...
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #39 en: Lunes 16 de Febrero de 2004, 15:26 »
0
El controlador le has hecho con algun esquema de internet? estoy acostumbrado al los LCD de 16x2 de caracteres y una pantalla de movil no se como funcionara. Aqui tengo un standar pero preferiria algo ya integrado.

http://home.iae.nl/users/pouweha/lcd/lcd_examp.shtml

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #40 en: Jueves 19 de Febrero de 2004, 21:51 »
0
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...
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #41 en: Viernes 20 de Febrero de 2004, 15:55 »
0
Pues gracias por explicarte, y no, no lo entiendo aunqe me esfuerzo por ello. XDDD. Yo voy a intentar hacer la version del boli a distancia. No tengo los datos exactos pero si se como hacerlo:

Con un temporizador 555 smd, 4 pulsadores mini, 5 resistencias smd, 1 condensador smd, 1 emisor infrarrojo y una pila de 3v de camara de fotos. Cabe todo perfectamente en la mitad de un boligrafo que tenga el diametro un poco ancho. cada pulsador conectado a traves de una de las 4 resistencias al 555, todas de distinto valor para generar pulsos de distinta frecuencia. La salida del 555 al emisor infrarrojo. con la otra resistencia y condensador se hace el tiempo de descarga del 555, con lo que este tiempo es igual para los 4 pulsadores, asi que nos fijamos solo en la anchura de los distintos pulsos. En el programa habra que hacer una rutina que al recibir los pulsos infrarrojos mida la anchura del pulso(habra que hacer unas pruebas con osciloscopio para los valores de muestreo del pic) y decodifique cual de los 4 pulsadores ha sido accionado. Tanto el pic como el 555, como el display led funcionan con 2v, asi que con 3v tanto en el reloj como el boligrafo deberian tener una pila de esas de 3v o dos de boton de 1,5.

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #42 en: Viernes 20 de Febrero de 2004, 16:22 »
0
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...
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #43 en: Viernes 20 de Febrero de 2004, 16:24 »
0
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...
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #44 en: Lunes 23 de Febrero de 2004, 00:20 »
0
Estaria bien el poder incluir graficos, asi la chuleta seria mas completa.

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #45 en: Lunes 23 de Febrero de 2004, 10:49 »
0
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
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #46 en: Viernes 27 de Febrero de 2004, 12:55 »
0
http://www.geocities.com/dinceraydin/lcd/intro.htm

En esta pagina viene explicado el funcionamiento de un display 2x16, esta bien para entender como funcionan para poder programarlos con el pic. Tambien viene un simulador. Estaria bien saber tambien las diferencias que hay con un display como el del 5110, ya que los estandar tienen 14 pines y el del 5110 solo tiene 9 creo:

http://todomodding.com/forums/showthread.php?threadid=254

aqui viene una explicacion de un display del 3310, seria interesante tener disponible toda la informacion para poder trabajar con ello mas comodamente.
Saludos.

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #47 en: Martes 18 de Mayo de 2004, 17:24 »
0
#include <p16f88.inc>

ledRreg         equ      021H
ledGreg         equ      022H
ledcount      equ      023H
chanelreg      equ      024H
ADchanel2outC   equ      025H
ADchanel3outC   equ      026H
ADchanel4outC   equ      027H
;050H-05FH,0D0H-0DFH   Accx Buffer
;060H-06FH,0E0H-0EFH   Accy Buffer

init  
   nop
   nop
   nop
   nop
   
   ;BuscarFlAG, ejecutar subrutina, retfie.
   btfsc   INTCON,TMR0IF
   goto   TMR0overflow
   btfsc   PIR1,SSPIF
   goto   SSPcompleteTR
   btfsc   PIR1,TMR2IF
   goto   TMR2toPR2match
   btfsc   PIR1,TMR1IF
   goto   TMR1overflow
   btfsc   PIR2,EEIF
   goto   EEPROMwritecompleted ;Internal EEPROM
   

CONFIGDEV  ;CONFIG DEVICE(I/O PORTS, A/D, clock, SPI, IRQs,TIMERs, WDT)   
;OSCILLATOR CONFIGURATIONS            INTO2 8MHZ,whit I/O on RA6,RA7
   bsf      STATUS,RP0
   movwf   B'00000000'
   movwf   OSCTUNE
   movlw   B'01110010'
   movwf   OSCCON
   bcf      STATUS,RP0
;INTERRUPTS         TMR0,TMR1,TMR2,SSP
    bsf      STATUS,RP0
    movlw   B'10000010'
    movwf   OPTION_REG
    bsf      STATUS,RP0
   movlw   B'11100000'
   movwf   INTCON
   movlw   B'00000000'
   movwf   PIR1
   movlw   B'00000000'
   movwf   PIR2
   bsf      STATUS,RP0
   movlw   B'00001001'
   movwf   PIE1
   movlw   B'00010000'
   movwf   PIE2
   bcf      STATUS,RP0
;I/O PORTS
   ;PORTA
   movlw   B'00000000'
   movwf   PORTA
   bsf      STATUS,RP0
   movlw   B'01011100'   
    movwf   TRISA   
    bcf      STATUS,RP0
    ;PORTB
   movlw   B'00000000'
    movwf   PORTB      ;PORTB7-0 outputs
   bsf      STATUS,RP0
   movlw   B'00100010'   
    movwf   TRISB   
    bcf      STATUS,RP0
;SSP      configurado en modo SPI Master
   movlw   B'00000000'
   movwf   SSPBUF      ;b7-0
   movlw   B'00100000'
   movwf   SSPCON      ;b7-0   
   bsf      STATUS,RP0
   movlw   B'11000000'
   movwf   SSPSTAT      ;b7-6,1
   bcf      STATUS,RP0
;A/D
   movlw   B'00000000'
   movwf   ADRESH      ;b7-0
   movlw   B'01000001'
   movwf   ADCON0      ;b7-2,0
   bsf      STATUS,RP0
   movlw   B'0'
   movwf   ADRESL      ;b7-0
   movlw   B'11000000'
   movwf   ADCON1      ;b7-4
   movlw   B'00011100'
   movwf   ANSEL      ;b6-0
   bcf      STATUS,RP0

;TIMER0 MODULE
   movlw   B'00000000'
   movwf   TMR0
   
;TIMER1 MODULE
;TMR1L
;TMR1H
;T1CON
;TIMER2 MODULE
;TMR2
;T2CON
;PR2
;DATA EEPROM
;WDT
   bsf      STATUS,RP0
   movlw   B'00011110'
   movwf   WDTCON
   bcf      STATUS,RP0

;CCP MODULE                        OFF
;USART                           OFF
;COMPARATOR MODULE                  OFF
;COMPARATOR VOLTAGE REFERENCE MODULE   OFF

CONFIGREGS
   movlw   050H
   movwf   ADchanel2outC
   movlw   060H
   movwf   ADchanel3outC
   movlw   B'00000100'
   movwf   chanelreg
   movlw   B'10101010'
   movwf   SSPBUF
   movlw   B'00100000'
   movwf   SSPCON   

   
ledlevel
   ;como cambiar LedXreg desde cada subrutina?
   movlw   B'10101010'
   movwf   ledRreg
   movlw   B'10000000'
   movwf   ledGreg
   movlw   0B0H
   movwf   ledcount

loop      ;el programa inicial despues de un ReSET un configurar el uC

   nop
   goto loop
   nop


TMR0overflow ;(interrupt);
   bcf      INTCON,TMR0IF
ADnoend
   btfsc   ADCON0,GO_DONE   ;esperar en caso de q el AD no haya terminado
   goto   ADnoend
   btfsc   chanelreg,2      ;comprobar que canal se ha leido
   goto   ADchanel2out
   btfsc   chanelreg,3
   goto   ADchanel3out
   btfsc   chanelreg,4
   goto   ADchanel4out

ADchanel2out
   bcf      STATUS,RP0
   movfw   ADchanel2outC      ;guardar los datos de la conversion en un buffer mediante indf
   movwf   FSR
   movfw   ADRESH
   movwf   INDF
   bsf      STATUS,RP0
   bsf      FSR,7
   movfw   ADRESL
   movwf   INDF
   bcf      FSR,7
   bcf      STATUS,RP0
   incf   ADchanel2outC,f
   movfw   ADchanel2outC
   sublw   060H
   btfss   STATUS,Z
   goto   ADchanelselect
   movlw   050H
   movwf   ADchanel2outC
   ;indicar que el buffer Accx(050H-05FH,0D0H-0DFH)esta completo.El buffer Accy aun le queda un dato por almacenar
   goto   ADchanelselect


ADchanel3out   
   bcf      STATUS,RP0
   movfw   ADchanel3outC      ;guardar los datos de la conversion en un buffer mediante indf
   movwf   FSR
   movfw   ADRESH
   movwf   INDF
   bsf      STATUS,RP0
   bsf      FSR,7
   movfw   ADRESL
   movwf   INDF
   bcf      FSR,7
   bcf      STATUS,RP0
   incf   ADchanel3outC,f
   movfw   ADchanel3outC
   sublw   070H
   btfss   STATUS,Z
   goto   ADchanelselect
   movlw   060H
   movwf   ADchanel3outC
   ;indicar que el buffer Accy(060H-06FH,0E0H-0EFH)esta completo. Los buffers Accx y Accy estan llenos
   ;desactivar interrupciones por AD?
   goto   ADchanelselect


ADchanel4out
   ;solo comprobar que las tensiones son adecuadas comparandolo con una referencia
   goto   ADchanelselect
   
ADchanelselect
   ;change chanel to read in next AD obtain(2,3,4)
   bcf      STATUS,C
   rlf      chanelreg,f
   btfsc   STATUS,C
   bsf      chanelreg,0

   btfsc   chanelreg,2
   goto   chanel2      ;el AccX
   btfsc   chanelreg,3
   goto   chanel3      ;el AccY
   btfsc   chanelreg,4
   goto   chanel4      ;el Vbat
   movlw   B'00000100'
   movwf   chanelreg
   goto   chanel2   ;;; xq es el proximo que se debe leer!!!
chanel2   
   movlw   B'00010000'      ;seleccionar canal 2 (010)
   iorwf   ADCON0,f
   movlw   B'11010111'      ;seleccionar canal 2 (010)
   andwf   ADCON0,f   
   goto   ADstart
chanel3
   movlw   B'00011000'      ;seleccionar canal 3 (011)
   iorwf   ADCON0,f
   movlw   B'11011111'      ;seleccionar canal 3 (011)
   andwf   ADCON0,f
   goto   ADstart
chanel4   
   movlw   B'00100000'      ;seleccionar canal 4 (100)
   iorwf   ADCON0,f
   movlw   B'11100111'      ;seleccionar canal 4 (100)
   andwf   ADCON0,f
   goto   ADstart

ADstart
   bsf      ADCON0,GO_DONE
   goto   rotateLEDs
rotateLEDs
   incfsz   ledcount,f      ;esperar varias IRQ por TMR0 para rotar los LEDs
   retfie
   rrf      ledGreg,f      ;rotar y mostar LEDGREEN
   btfsc   STATUS,C
   bsf      ledGreg,7
   bcf      STATUS,C
   btfss   ledGreg,0
   bsf      PORTB,6
   btfsc   ledGreg,0
   bcf      PORTB,6
   rrf      ledRreg,f      ;rotar y mostar LEDRED
   btfsc   STATUS,C
   bsf      ledRreg,7
   bcf      STATUS,C
   btfss   ledRreg,0
   bsf      PORTB,7
   btfsc   ledRreg,0
   bcf      PORTB,7
   movlw   0B0H
   movwf   ledcount
   retfie               ;FIN DE LA INTERRUPCION ;Datos AD obtenidos y guardados en buffer, LEDs rotados.



SSPcompleteTR
   bcf   PIR1,SSPIF
;   subrutine
   retfie
TMR2toPR2match
   bcf   PIR1,TMR2IF   
;   subrutine
   retfie   
TMR1overflow
   bcf   PIR1,TMR1IF   
;   subrutine
   retfie
EEPROMwritecompleted
   bcf   PIR2,EEIF   
;   subrutine
   retfie

   END
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #48 en: Lunes 14 de Junio de 2004, 00:16 »
0
Por fin termine 3 de las 4 rutinas para controlar el hardware, con sus interrupciones y su codigo optimizado para permitir ocupar el tiempo minimo al micro. Segun unos calclos aproximados el micro permanece libre aproximadamente un 90% del tiempo, es decir, la mayor parte del tiempo esta esperando a que se desborde un timmer o a q le devuelvan un dato del exterior.
El micro se arranca y configura los registros de todos los perifericos, busca la procendencia de las interupciones, salva y carga los registros mas importantes durante las interrupciones, lee datos analogicos de un ADXL 311 cada periodo de 3mS y toma el valormedio de cada 16 medidas. Comprueba e estado de la bateria cada 3mS. Envia datos a un LCD LPH7366 utilizando el periferico SSP y sus interrupciones, informa al usuario mediante 2 LEDs(rojo y verde) que tb van con IRQ...bueno, si alguien quiere el codigo en ASM que me lo pida, tb realice algunso cambios en el esquema, pero no son importantes. De mometo pienso eliminar el 74LVC07, el regulador de 5V y alimentar todo el circuito a 3.3V o 3.0V, pero no es nada demasiado importante....
Me queda realizar una rutina para leer y escribir en las EEPROM. Primero voy a hacer un diagrama de flujo del codigo que e escrito....en unos dias lo pondre.
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?

jgpeiro

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Evaluacion De La Idea De Mi Proyecto
« Respuesta #49 en: Lunes 14 de Junio de 2004, 12:56 »
0
aqui va el esquema del programa que e escrito en ASM, por cierto, son unas 380 instrucciones....
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
¿que falta despues de morir que hubiese anter de nacer?, ¿es posible la reencarnacion?