Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola busco ayuda con la biblioteca delay.h, esta define ticks de 10 ms y me gustaria poder conseguir ticks de 1 ms o menos, y para eso hay que cambiar un define, que establece un contador, pero no se porque ese valor genera ticks de 10 ms.#define TICKS10 0x3D // Valor con el que inicializar contador para
// conseguir TICKs de 10ms
/************************************/
/* Configurar el temporizador 0 */
/*********************************/
void timer0_configurar()
{
//-- Usarlo en modo temporizador, prescaler = 256
OPTION_REG=0x87;
}
/*********************************************/
/* Hacer una pausa en unidades de 10ms */
/* ENTRADA: */
/* -pausa: Valor de la pausa en decenas de ms */
/************************************************/
void delay0(unsigned char pausa)
{
//-- Esperar hasta que trancurran pausa ticks de reloj
while(pausa>0) {
TMR0=TICKS10; // Inicializar contador
T0IF=0; // Quitar flag overflow
//-- Esperar hasta que bit T0IF se ponga a '1'. Esto
//-- indica que han transcurrido 10ms
while (!T0IF);
//-- Ha transcurrido un tick
pausa--;
}
}
Muchas gracias de antemano.
Goofyahead 🙂
inicializa el timer con el valor 0x3D (61 en decimal), de ahí a que llegue a 255 (si el timer es de 8 bits) pues se supone que habran pasado 10mS (esto depende de la frecuencia del reloj que tengas puesta), bueno, siguiendo una regla de tres, si (255-61)=194 (es el recorrido que hace el timer desde 61 hasta 255 que es cuando desborda)-> 194=10mS entonces supongo que 19.4 seria el recorrido de 1mS, convertido a entero seria 19 (con un error bastante gordo que tendrias que ajustar cada 5 mS restar uno).
Si revertimos la cuenta 255-19=236 -> 0xEC (notación hexadecimal) seria el valor con el que cargar esa constante.
wow, gracias, no sabia que era un contador que desbordaba, asi que el contador llega hasta 255 porque tiene 8 bits, y lo que establezco es donde empieza a contar, comprendo que por cada unidad del contador es un ciclo de mi reloj, para hallar la cantidad exacta de tiempo, no?
Muchas gracias 🙂 da gusto estar haciendo algo y que te contesten el finde!!
😀
Saludos Gof
Nos vemos en valencia 🙂