|
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 - Pegasux
51
« en: Lunes 5 de Noviembre de 2007, 13:50 »
Yo le tengo conectado entre 5v (anodo) y tierra (catodo) con una resistencia de 100 ohms, puedes probar con resistencias mas grandes para ver que tal luz da e irlo bajando hasta que te guste el nivel de luz. Saludos.
52
« en: Lunes 5 de Noviembre de 2007, 08:38 »
Gracias por la respuesta. Bueno, ahora que ya sabemos que ese registro no existe, no se porque no me funciona el programa, las interrupciones del timer1 y la general estan habilitadas, el timer cuenta y se produce el bit de aviso al sobrepasar el contador, pero no salta al vector de interrupción. El codigo es muy sencillo, solo hay una rutina de retardos. ¿Alguien puede echarle un vistazo? Gracisa de nuevo y un saludo.
53
« en: Domingo 4 de Noviembre de 2007, 21:37 »
Muy buenas. Tengo un problema con la interrupcion del timer1 en un programa básico. Todo esta bien aparentemente, solo que no salta al vector de interrupcion (0x04h). Tengo un libro de los pic 16F87X y 18FXXX, en el cual, en el capitulo de interrupciones, me habla de un registro "RCON" que contiene el bit "IPEN" que sirve para permitir las interrupciones. Sorprendentemente, en el mapa de registros este "RCON" no aparece en ningun banco y el MPLAB tampoco lo reconoce. Al principio pensé que por culpa de no configurar este registro no me funciona el programa, pero ahora creo que o bien es de la serie 18, o bien es un gazapo en el libro. El caso es que el programilla no me funciona en la simulación y no se porque. ¿Alguien me puede ayudar? Gracias y un saludo.
54
« en: Lunes 29 de Octubre de 2007, 09:03 »
Muchas gracias por la ayuda, aunque todavia no he logrado hacerlo funcionar. El problema no se cual es exctamente, porque el puerto com de mi adaptador usb es el com21, el que utiliza el icprog es el com1 (los demas aparecen en gris). En las opciones avanzadas de los puertos com del administrador de dispositivos, he cambiado el com1 al com xx(uno no usado) y el del adaptador usb le he puesto como com1, pero esto sigue sin funcionar, al darle a programar el led verde del programador no se enciende. No se que más tengo que hacer, quizas utilizar otro programa. Saludos.
55
« en: Sábado 27 de Octubre de 2007, 10:37 »
Muy buenas. Recientemente he comprado un adaptador de usb a puerto serie para poder programar con el T20 en mi ordenador. Utilizo el ICProg, pero no se como he de configurarlo, he probado a modificar unas cuantas opciones pero esto no funciona. El adaptador es un Prolific PL-2303. ¿Tengo que cambiar el ICProg por otro? Saludosl
56
« en: Jueves 18 de Octubre de 2007, 22:20 »
Possi, ese era el fallo. Un saludo a todos!!
57
« en: Jueves 18 de Octubre de 2007, 22:09 »
creo que he encontrado el fallo, yo suponia que le bit C se ponia a 1 cuando el resultado era negativo, y resulta que se pone a 1 cuando es positivo!!! Tendre que probarlo.... Encontre este ejemplo donde lo hacen asi:
INICIO CLRW CLRF porcent CLRF numero MOVLW 0X36 MOVWF numero DIVIDE
MOVLW 0x0A SUBWF numero,F BTFSC STATUS,C GOTO AUMENTA GOTO SAL
AUMENTA INCF porcent,F goto DIVIDE
SAL
end
58
« en: Jueves 18 de Octubre de 2007, 21:47 »
Muy buenas. Quiero mostrar en un LCD de 4x20, en la primera linea, una barra que muestre el "valor" del conversor analogico digital, cuando este sea 0 no se mostrara nada, cuando sea 255 (maximo) que muestre la 1º linea llena de cuadrados rellenos (caracter FF del LCD compatible hitachi). Para convertir los 255 valores en 20, realizo una division a base de restas, 255/13 = 19,algo asi que resto 13 y muestro cuadrados hasta que el valor de "Barra" sea <0, testeando el flag C que se pondra a uno, salgo del bucle. El asunto es que no funciona, se enciende solamente el 1º caracter y en algunos valores concretos se apaga, los demas caracteres de la linea no se encienden nunca, y es algo que no logro entender. El lcd funciona perfectamente, es el algoritmo el que falla porque sin la division funciona bien (pero no se ajusta a los 20 caracteres). Uso el pic 16f876, por si sirve de algo. Es la unica forma de poder ajustar por software (que yo sepa), la otra opción sería con un divisor de tension mediante un potenciometro a la entrada del conversor, pero preferiría averiguar porque no funciona así.
Gracias y un saludo.
x_salta movlw 0x0D ; W=13 subwf Barra,1 ; barra = barra - 13
btfsc STATUS,C return
movlw 0xFF ; caracter call LCD_DATOS ; Visualiza caracter goto x_salta
59
« en: Martes 9 de Octubre de 2007, 23:08 »
Vaya pordios, muchas gracias por la respuesta.
60
« en: Lunes 8 de Octubre de 2007, 20:54 »
Muy buenas. Para comentar una zona de codigo de mas de una linea hay algun metodo sencillo como el /* */ de C o hay que hacer ; a pelo en todas las lineas? Saludos.
61
« en: Sábado 6 de Octubre de 2007, 09:49 »
Igual tienes razon, en el datasheet no he visto nada de gráfico, pense que lo era porque lo primero que busque en internet fueron imagenes y me salia un display grafico, es posible que la foto no correspondiese.
Seguramente te valga el programa. Saludos.
62
« en: Viernes 5 de Octubre de 2007, 14:59 »
Un lcd de caracteres consiste (mas o menos) en que le mandas la direccion de la pantalla en la que quieres meter un caracter y le mandas el dato ascii que quieres sacar por pantalla por la linea de datos y te lo saca en la posicion de la pantalla que le has indicado, todo esto lleva su protocolo, no es tan sencillo, pero ya hay funciones que lo hacen y resulta sencillo. Un lcd grafico no se como se programan, pero viene a ser una matriz de puntos (como la del movil) y sirve para hacer dibujos, claro está que con el correspondiente software o hardware se puede hacer que dibuje caracteres como un lcd de caracteres.
Me imagino que si puedas usar las librerias, por lo que he mirado en el datasheet no parece que hubiera diferencias mas que en las direcciones de la DDRAM y CGRAM.
Si te refieres a utilizar solamente las dos lineas de arriba (creo que tiene 4) no es mas que apuntar a las direcciones 80h (primera linea) y la C0h (segunda linea). Por cierto, si tiene 20 caracteres cada linea, y escribes mas de 20 (pongamos en la 1º linea) los caracteres sobrantes no aparecen en la 2º linea, sino en la 3º, y si te pasas de la 2º te salen en la 4º, digamos que no van seguidos, sino que van alternados.
Saludos.
64
« en: Jueves 27 de Septiembre de 2007, 23:45 »
Ya lo entendi, 80 = 1000 0000, es el comando con la direccion 0 de la pantalla. Saludos.
65
« en: Jueves 27 de Septiembre de 2007, 23:42 »
Pues si señor, ahora funciona y yo tampoco se porque. Muchas gracias por la ayuda. Hay otra cosa que no comprendo, en las siguientes sentencias:
movlw 0x80 ;pone cursor en 80------------------ call LCD_REG movlw 'T' call LCD_DATOS ;Visualiza caracter
Con esto logra que el mensaje salga en la 1º posicion de la 1º linea, cuando las direcciones fisicas no pasan de la 0x67. ¿Como tengo que hacer entonces para apuntar al 1º elemento de la 2º fila? Saludos y gracias!!!
66
« en: Jueves 27 de Septiembre de 2007, 22:57 »
Hola. En esta pagina tienes unos cuantos ejemplos de sensores, algunos con I2C, no es con el 628 en todos, me parece, pero igual ves algo que te sirve: http://www.x-robotics.com/sensores.htmSaludos. P.D: El acelerometro esta muy chulo!!
67
« en: Jueves 27 de Septiembre de 2007, 22:14 »
No me lo puedo decreer!!! Has dado en el clavo!!! esos 2 puñeteros bits me han vuelto loco todo el dia!!! Muchas gracias Huguen!! Saludos!!
68
« en: Jueves 27 de Septiembre de 2007, 16:42 »
Ya lo probe, tampoco funciona, ni funciona la retroiluminacion del led.... no se que pensar.
69
« en: Jueves 27 de Septiembre de 2007, 14:59 »
Muy buenas. Tengo un display hitachi de 4x20 caracteres y quiero probarlo con un programa simple. He visto un codigo en internet muy interesante: http://www.x-robotics.com/downloads/rutinas/X-Temp_LM35.txtMas o menos hace lo que yo quiero, (pongo el mio adjunto) que es mirar la tension en AN0 y sacarlo por el display, en realidad el programa mira en 4 entradas, pero como yo solo uso la AN0, he borrado las rutinas que hacen el resto. No se usan librerias, va todo en rutinas. El unico inconveniente es que esta realizado para un display de 2x16, no se si sera por eso que no funciona. Mi display tiene la pantalla azul oscuro, modificando el contraste consigo que 2 filas de las 4 se pongan mas o menos blancas, imagino que es lo que tiene que hacer, pero no se si tengo que encender los led de la retroiluminacion para ver algo. Estoy por probar el programa sin modificar a ver que pasa... Saludos.
70
« en: Lunes 24 de Septiembre de 2007, 23:36 »
Eso creo que es facil, se hace con una sola interrupcion, como las del puertoB, cuando salta a esa interrupcion comprueba el bit del puerto al que esta conectado el boton y mira si esta a "1" o a "0", asi sabe si esta pulsado, y salta a hacer tal cosa, o no esta pulsado, y salta a hacer otra cosa. Saludos.
71
« en: Lunes 24 de Septiembre de 2007, 23:32 »
Creo entender que lo te dije en el otro post no ha servido de mucho... A ver si alguien que controle un poco se anima.
72
« en: Lunes 24 de Septiembre de 2007, 23:18 »
Que buena!!! solo con cambiar los includes al final antes del end ya funciona bien. Yo pensaba que al ser directivas para el ensamblador no importa donde las coloques, pero va a ser que si. Muchas gracias Ingeniero!!
73
« en: Lunes 24 de Septiembre de 2007, 22:53 »
Gracias por la respuesta. Con "mira las direcciones de los reguistros y asegurate de que estan bien puestas" ¿te refieres al banco de la ram que se apunta? Eso creo que esta bien, lo miro en un libro del 16F876. Se supone que tras el vector de reset RP0 y RP1 estan a 0, por lo que pongo RP0 a 1 para ir al banco 1, donde estan los registros OPTION e INTCON. Estoy pensando que esas librerias son para el pic 16F84 y yo uso el 16F876 ¿puede ser eso, no son universales? Te mando adjuntas las librerias.
Saludos.
74
« en: Lunes 24 de Septiembre de 2007, 14:35 »
Me parece que en la rutina de atencion del boton lo primero que tienes que hacer es deshabilitar la interrupcion por timer0. No se si en los pics se podra hacer asi, pero en mips deberias leer el registro INTCON, hacerle una operacion and con el bit a 0 del timer0 y todos los demas a 1 (esto hace que se ponga a 0 si esta a uno y no modifica los demas) y lo vuelves a guardar en el registro INTCON. Espero que te sirva de ayuda. Saludos.
75
« en: Domingo 23 de Septiembre de 2007, 23:20 »
"lo que pasa es que solo se me activa la del timer continuamente, y esa solo quiero que se active cuando no este pulsado el boton de 'modo teclado'"
Hola. ¿puedes explicarlo un poco mas extendido? No entiendo mucho de pics, pero de interrupciones un rato. Saludos.
|
|
|