• Miércoles 9 de Julio de 2025, 19:35

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 - Nash7

Páginas: [1]
1
Programación en C / Calculos Ccs
« en: Miércoles 7 de Septiembre de 2005, 20:01 »
A ver, estoy intentado hacer unos calculos con el Timer 1 de form que necesito saber el tiempo que ha pasado entre cada interrupción. El problema es que:

1) No estoy haciendo bien la mascara y borro el byte más significativo
2) A pesar de poner T1 como integer16, está haciendo la multiplicación como si fuera un solo byte

El caso es que cuando F1 = 9, en vez de darme 1566(61E) me da 30 (1E).
Aqui os mando la función que utilizó a ver que os parece:

unsigned int16 calculos(int F1, unsigned int16 T)    //F1 = nº de overflows
{                                                                        //T valor del Timer1 actual

unsigned int16 T1=0, Tt = 0, j=0;
unsigned int32 T2;


T1 = (F1 * 174);          //174ms overflow del Timer1 con un reloj de 12MHz
T2 = (T * 8);
T2 = (T2 / 3);                //Paso a us el tiempo del timer
j = T2 * 0.001;              //trunco la suma quedándome con ms
a1 = T1&0x00ff;
T1>>=8;                       //máscara para presentar los datos en el winzip800
a2 = T1&0x00ff;
cont++;
write_eeprom(cont,F1);
cont++;
write_eeprom(cont,a2);
cont++;
write_eeprom(cont,a1);
Tt = T1 + j;                   //Sumo los tiempos parciales

return (Tt);

}



AYUDA!!!!!!!
¿Que pasa, que hago?como lo soluciono?, porque me multiplica en un solo byte?GRRRRRRRRRRRRR!!!!!!! :angry:

2
Programación en C / Asignacion En Ccs
« en: Jueves 1 de Septiembre de 2005, 17:32 »
A ver, estoy intentando visualizar ciertas variables mediante un puerto, para ello he instalado una serie de Leds a la salida de cada Pin del puertoD, que lo he definido como:

#byte Port_d = 0x08

La pregunta es, puedo asignar un valor al puerto y que me salga el valor?, es decir:

Port_d = 2;

De forma que se me encendería un solo led...y si es así (que no me sale en el programa), lo podría hacer tb con una variable? <_<

Thanx

3
Programación de Aplicaciones para Dispositivos / Control De Velocidad
« en: Miércoles 31 de Agosto de 2005, 16:56 »
Estoy haciendo un proyecto en el que controlo la velocidad del motor de un tocadiscos, la velocidad la tomo de una fotocélula y el micro (16f877A) tiene que regular la velocidad a la que va el motor. El problema esta en que yo no tengo la planta del tocadiscos y por tanto no sé como puedo hacer para sacar el control PI asociado.

¿Alguien sabe como puedo obtener un PI para un motor de 12V?, o ¿alguien tiene una idea para regular el motor?
Muchas gracias :P

4
Programación en C / Tipos De Las Variables Ccs
« en: Martes 26 de Julio de 2005, 20:30 »
Continuo con mis preguntas tontas, pero esto de hacer el PFC de asignaturas que no has visto durante la carrera me esta matando...

A ver el problema es saber si estoy declarando bien las variables siguientes y aque no estoy muy seguro y no se muy bien como funcionan los diferentes tipos. la funcion sería:

int   Dant, D, F, Fant, X,nref;
long Tpar1, Timer, Tpar2;
long int Tt, f1, f2, ;
float n, err, errV, ferr;

void calculos(){

   Tpar1 = (Fant * 65536);
   Tpar2 = (Tpar1 + Timer);
   Tt = (Tpar2 * 0.000001);
   n = (60 / Tt);
   }

void regulacion(){

   err = nref - n;
   errV = err / 8,3;
   ferr = (errV * 85.3333);
   f1 = f1 + ferr;



El problema es que "n" tiene que ser un numero con un decimal (y cercano a 33'3, 45 y 78) y f1 tiene que ser un entero entre 0 / 1024 porque sera el duty cycle del PWM.

Veis si la estoy liando en alguna parte? es que a mi me da que si y no se muy bien donde.

Muchas gracias  :kicking:

5
Programación en C / Interrupcion Ccs
« en: Martes 19 de Julio de 2005, 19:24 »
Estoy haciendo un circuito que controla lavelocidad de un motor, de tal forma que segun le des a un boton o a otro, el motor se pone a una velocidad o a otra... Los diferentes pulsadores están metidos como interrupciones en el programa, pero el problema es: ¿hay alguna forma de cambiar el valor de una variable (el duty cycle) dentro de la interrupcion de tal forma que la puedas utilizar en el programa principal?


Gracias :P

6
Microcontroladores / Interrupcion Pines Rb 4-7
« en: Lunes 18 de Julio de 2005, 14:43 »
Estoy utyilizando el 16f877A y el CCS como compilador. Estoy haciendo un programilla chorra en el que al darle u boton se va a la interr y hace parpadear un LED. El problema es que si configuro la interrupción como EXT todo va a las mil maravillas, en cambio si lo configuro como RB 4 - 7 la interrupción salta continuamente y no ejecuta el programa principal  :angry: .

No sé si el problema está en la placa porque tenga muchos rebotes o algo asi... o he pueto un pulsador con un condensador de 0,1 uF, debería ser suficiente,no?.

Si alguien me pudiese ayudar con cualquier sugerencia lo agradecería mucho...

Gracias :P

7
Programación en C / Compilar 16f873
« en: Miércoles 29 de Junio de 2005, 17:28 »
OK! parece ser que el CCS que necesitamos para trabajar, pero las librerias que trae la demo no inlcuyen el 16f873, alguien las tiene?o alguien sabe como bajarse una version completa del ccs?, o en su defecto cualquier otro software que compile para dicho micro?.

Agrdeceria una ayuda al respecto porque llevo perdido  <_< dos dias con la tonteria y no soy capaz de llegar a ninguna conclusion

Mil gracias poor adelantado

Páginas: [1]