Ver tema anterior :: Ver tema siguiente |
Autor |
Mensaje |
Teotekaplan Moderador
País: Sexo: Registrado: 31 marzo 2003 Mensajes: 4124 Ubicación: Madrid
|
|
Volver arriba |
|
|
Teotekaplan Moderador
País: Sexo: Registrado: 31 marzo 2003 Mensajes: 4124 Ubicación: Madrid
|
Publicado: Mie, 18 May 2005 2:20 am Asunto: Código comentado |
|
|
Weno paso a explicar el código que lleva metido el pic:
Código: |
#include "C:\Documents and Settings\Favila\Mis documentos\electronica\Reloj bahia cd\reloj_hora_timer.h"
int n,hour,min,sec, ch1, ch2, chr;
int16 contador;
//Aquí la tabla donde estan definidos los numeros
const unsigned char table[10][6] = {{ 0x3E,0x51,0x49,0x45,0x3E,0x00 }, // 0
{ 0x44,0x42,0x7F,0x40,0x40,0x00 }, // 1
{ 0x42,0x61,0x51,0x49,0x46,0x00 }, // 2
{ 0x22,0x41,0x49,0x49,0x36,0x00 }, // 3
{ 0x38,0x24,0x22,0x7F,0x20,0x00 }, // 4
{ 0x27,0x49,0x49,0x49,0x31,0x00 }, // 5
{ 0x3E,0x49,0x49,0x49,0x32,0x00 }, // 6
{ 0x01,0x01,0x71,0x09,0x07,0x00 }, // 7
{ 0x36,0x49,0x49,0x49,0x36,0x00 }, // 8
{ 0x26,0x49,0x49,0x49,0x36,0x00 }}; // 9
#int_TIMER0 //llegamos aqui cada 1024 uSeg
TIMER0_isr() {
//#asm
//BCF 0xB, 2
//MOVLW 5
//MOVWF 0x01
//#endasm
if (contador==1000) {
sec = sec + 1; //adelanta unos 86 segundos/hora
if (sec == 60) {
sec = 0;
min = min + 1;
}
if (min == 60) {
min = 0;
hour = hour + 1;
}
if (hour == 24) {
hour = 0;
}
contador = 0;
}
contador = contador + 1;
}
void caracter(chr) { //chr contiene los 2 digitos (hh,mm o ss)
ch1 = (chr/10); //sacamos las decenas
ch2 = (chr-(ch1*10)); // y las unidades
for (n=0;n<6;n++) { //vamos leyendo la tabla para el primer digito
output_b(table[ch1][n]);
delay_us(160); //160useg cada pixel horizontal
}
delay_us(500); //pausa entre digitos
for (n=0;n<6;n++) {
output_b(table[ch2][n]); //lo mismo con las unidades
delay_us(160);
}
}
void dospuntos() { //los 2 puntos son el bit 7 del puerto
output_b(128);
delay_us(160); //lo encendemos 160 useg
output_b(0); //apagamos
delay_us(1200); //esperamos antes de salir
}
void main() { //bucle principal
setup_counters(RTCC_INTERNAL,RTCC_DIV_8);
output_b(0);
enable_interrupts(INT_TIMER0);
enable_interrupts(global);
//#asm
//BCF 0xB, 2
//MOVLW 5
//MOVWF 0x01
//#endasm
hour = 00; //lo ajustamos a mano
min = 51;
sec = 00;
contador = 0;
while (1) { //esto quiere decir que es un bucle infinito
while(!input(pin_a1)) {} //esperamos al indice de rotacion
delay_ms(6); //esperamos que los led lleguen al frontal
caracter(hour); // dibuja la hora
dospuntos(); // los dos puntos
caracter(min); // minutos
dospuntos();// etc..
caracter(sec);
}
} //volvemos al principio, a esperar al indice
|
Aquí queda.'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.' |
|
Volver arriba |
|
|
Nate modder
País: Sexo: Registrado: 11 enero 2005 Mensajes: 318 Ubicación: Vigo
|
Publicado: Mie, 18 May 2005 2:42 am Asunto: |
|
|
Hola:
Puedes sentirte orgulloso, hoy te has hecho el héroe personal de electrónica de alguien. Mis felicitaciones por tu trabajo.
Un saludo. |
|
Volver arriba |
|
|
rutger Moderador
País: Sexo: Registrado: 12 septiembre 2003 Mensajes: 2032 Ubicación: ..Burgos..
|
Publicado: Mie, 18 May 2005 8:27 am Asunto: |
|
|
Enhorabuena por el proyecto. Sin duda original, vistoso y muy pro. Felicidades.
..Un Saludo..2800+ @3700+ (185x13) // Abit NF7-S v2.0// 2x512MB DDR400 @370 2-3-3-8 @11
|
|
Volver arriba |
|
|
SPIDER Moderador
País: Sexo: Registrado: 21 octubre 2002 Mensajes: 1362 Ubicación: ZARAGOZA
|
Publicado: Mie, 18 May 2005 8:45 am Asunto: me encanta el trabajo realizado |
|
|
Enhorabuena Teo, gracias a ti y a este post, somos la envidia de muchas otras páginas: Un proyecto fresco, y artesanal !!!!
La verdad es que da gusto ver post como éste y ver tus progresos.
Como ya te dije, si no es en este proyecto, en el del display giratorio con componentes SMD, te puedo "financiar" varias cosas, así que ya sabes: SÓLO HAS DE PEDÍRME LO QUE NECESITAS, que si lo tengo, puedes contar con ello como si fuera tuyo. Todo gran poder conlleva una gran responsabilidad |
|
Volver arriba |
|
|
ruboli modder
País: Sexo: Registrado: 25 marzo 2004 Mensajes: 181 Ubicación: ASTURIAS (gijon)
|
Publicado: Mie, 18 May 2005 1:33 pm Asunto: |
|
|
impresionante
no digo mas pork me kedo sin palabres...
pero tiene en casa un gato k ac breakdance asik...imeginenselo. jejeje
|
|
Volver arriba |
|
|
DuDuDMaN modder
País: Sexo: Registrado: 11 agosto 2004 Mensajes: 361 Ubicación: En UNO de los 69.588.359.698 ordenadores del mundo. (Barcelona)
|
|
Volver arriba |
|
|
Fredup modder
País: Sexo: Registrado: 28 enero 2005 Mensajes: 15 Ubicación: Bigastro (Alicante)
|
Publicado: Vie, 20 May 2005 10:40 pm Asunto: |
|
|
Wenas. He estado mirando lo de c++ y al principio me hansurgido unas dudas: 1) ¿Que librerias utilizas?
2) al poner #include "(directorio)" estas habriendo otro programa (que posiblemente sea la libreria q necesites), ¿Has especificado cual es?
espero q me resuelvas estos pequeños problemillas xq mi profe de c++ me tiene loco. GRacias |
|
Volver arriba |
|
|
Teotekaplan Moderador
País: Sexo: Registrado: 31 marzo 2003 Mensajes: 4124 Ubicación: Madrid
|
|
Volver arriba |
|
|
xootraoox modder
País: Sexo: Registrado: 12 agosto 2004 Mensajes: 5
|
Publicado: Dom, 22 May 2005 1:24 am Asunto: |
|
|
amigo Teotekaplan, te manejas con el ASM?? podriamos discutir e intercambiar varias cosillas al respecto ya que tambiien he trabajado bastante con estos juguetitos...
bueno si tienes interes dejo mi correo para que nos coloquemos en contacto ok.
xootraoox@gmail.com |
|
Volver arriba |
|
|
TeUfEl modder
País: Sexo: Registrado: 02 julio 2004 Mensajes: 6
|
Publicado: Lun, 23 May 2005 10:37 am Asunto: |
|
|
Hola Teotekaplan, tengo varias dudas con tu proyecto,
--conectas los leds directamente al pic? tendrias que ponerle una resistencia limitadora para no fundirlos
--estas trabajando con un pic16f84a/04 a 8 mhz? te va a durar 2 dias,
porque de esta manera lo estas forzando, la velocidad suya son 4mhz
--el codigo c que incluiste hace referencia a #include "C:\Documents and Settings\Favila\Mis documentos\electronica\Reloj bahia cd\reloj_hora_timer.h"?? Podrias colgar el codigo de tu proyecto
gracias
un saludo |
|
Volver arriba |
|
|
Teotekaplan Moderador
País: Sexo: Registrado: 31 marzo 2003 Mensajes: 4124 Ubicación: Madrid
|
Publicado: Lun, 23 May 2005 1:49 pm Asunto: |
|
|
Wenas... os contestaré a los 2 por orden ehehehe...
xootraoox Gracias por la oferta. Yo uso siempre C aunque a veces es necesario hacer algunos retoques en ASM y no ando demasiado puesto. si tengo alguna duda con algo que necesite te lo haré saber (especialmente con el tema de interrupciones y timers, pero para el propeller2 con el F876A).
TeUfEl . El 16F84A que uso no es el /04, según especificaciones del datasheet opera sin problemas hasta 20 Mhz. Sobre el include, el código está arriba pero lo pego again
Código: | #include <16F84A.h>
#use delay(clock=8000000)
#fuses HS,PUT,NOWDT |
Como ves, es la cabecera que genera el compilador, sin aditivos.
Y sobre los led, no se necesita resistencia ya que nunca están encendidos de continuo, cada pixel dura unos pocos microsegundos. De hecho si incluyes la resistencia limitadora calculada de la forma tradicional, no verías apenas el led encenderse.'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.' |
|
Volver arriba |
|
|
aWeLo_THe_FaST modder
País: Sexo: Registrado: 11 junio 2005 Mensajes: 305 Ubicación: Málaga
|
Publicado: Vie, 08 Jul 2005 8:30 pm Asunto: |
|
|
[MODO RESUCITAR_POST ON]
bueno despues de ver el post del propeller Clock 2 no he podido resistirme y he buscado el 1 lo he estado leyendo y... pa cuando ese video?? wapisimo ha quedao. felicidades!!
[MODO RESUCITAR_POST OFF]
un saludo
aWeLo_THe_FaST |
|
Volver arriba |
|
|
Teotekaplan Moderador
País: Sexo: Registrado: 31 marzo 2003 Mensajes: 4124 Ubicación: Madrid
|
Publicado: Sab, 09 Jul 2005 7:38 am Asunto: |
|
|
Ops, video nada chico, este post lo di por terminado hace tiempo, es más ni siquiera tengo este reloj ya. Lo hice solamente como intro para el segundo.
Y el segundo estoy en ello eh pero ahora no me puedo parar mucho...'Me lo contaron y lo olvidé. Lo vi y lo entendí. Lo hice y lo aprendí.' |
|
Volver arriba |
|
|
aWeLo_THe_FaST modder
País: Sexo: Registrado: 11 junio 2005 Mensajes: 305 Ubicación: Málaga
|
Publicado: Sab, 09 Jul 2005 9:51 am Asunto: |
|
|
jo... bueno, es lo que tiene llegar tarde a los hilos pero del Propeller 2 que no se te olvide eh...
un saludo
aWeLo_THe_FaST |
|
Volver arriba |
|
|
|
|