Salida del registro TMR0 en pic16f877A

0

Escribí un programa de contador de frecuencia simple en el que TMR0 es un temporizador de 500 ms y TMR1 como contador. Todo funciona bien, pero lo que no entiendo es que la salida del registro TMR1 es hexadecimal o decimal. Dado que la entrada al registro TMR1 es en hexadecimal, mi salida es decimal. La frecuencia de entrada se suministra desde 5 kHz de onda cuadrada y TMR0 se preescala a 256.TMR1 no prescaler. Puse la entrada en el registro TMR1 como

    TMR1L=0x00;
    TMR1H=0x00;

pero después del temporizador de 500 ms, mi valor de registro TMR1 es

    TMR1L=243;
    TMR1H=8;
    
pregunta dcmotor

1 respuesta

0

El registro del temporizador contiene un patrón de bits: cómo lo configura o lo muestra, depende de usted.

Ya sea que diga TMR1L = 0x55 o TMR1L = 85, o TMR1L = 0b01010101, el registro contendrá el mismo patrón de bits.

Puede mostrar el contenido del registro como binario, hexadecimal, decimal o como un carácter ASCII, independientemente de cómo configure el contenido del registro.

Si configuro el valor de TMR1L usando cualquiera de las declaraciones anteriores,

printf ("TMR1L =% 2d,% 2x,% c \ n", TMR1L, TMR1L, TMR1L);

se imprimirá:

TMR1L = 85, 0x55, U

que muestra el carácter decimal, hexadecimal y ASCII representado por el patrón de bits en el registro.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas