Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

05/04/2014 #21

Avatar de papirrin

,debes configurarlo con este valor si quieres que cuenta cada 1us
no estoy muy seguro yo de eso, pero creo que sin preescaler el timer0 aun asi cuenta cada 2uS.

a ver si alguien lo confirma XD
05/04/2014 #22


es decir que segun la configuracion que esta en el programa que puse en las fotos de arriba

PS0 PS1 PS2 : 111
PSA: 1 ;preescaler del WDT

con estos bits me voy a la tabla y tengo que el preescaler es de 128

TOSE: 1 no me interesa
TOCS: 1 el timer0 se incrementa con cada instruccion de ciclo de programa
INTDG: 1 para interrupciones externas especifico el tipo de flanco para la int
RBPU: 1 no se para que es esto..

saco mi formula Int = 4 * (1/Fosc)*(256 - Valor TMR0)*Preescaler y meto valores asumiendo que el tmr0 lo inicio con 190 el resultado me da un valor de 8,5 ms teoricamente. y se supone que en la simulacion del proteus cada 128 instrucciones de ciclo deberia incrementarse en 1 el tmr0 ; bajo la configuracion de arriba todo esto es correcto ?
05/04/2014 #23

Avatar de papirrin

PS0 PS1 PS2 : 111
PSA: 1 ;preescaler del WDT

con estos bits me voy a la tabla y tengo que el preescaler es de 128
no, con eso se queda asignado el preescaler al modulo del WDT y el tmr0 se queda con un prescaler segun yo de 1:2

TOSE: 1 no me interesa
TOCS: 1 el timer0 se incrementa con cada instruccion de ciclo de programa
INTDG: 1 para interrupciones externas especifico el tipo de flanco para la int
RBPU: 1 no se para que es esto..
TOSE solo interesa si TOSC es 1, y TOSC en 1 no se incrementa cada instruccion(ciclo), se incrementa cuando el puerto TOCKL pasa de un flanco a otro, cuando incrementa cada instruccion (ciclo) es con TOSC=0.

RBPU activa las resistencias pullups en el puerto B
05/04/2014 #24


si tienes razon, compañero el tocs debe ser es 0, ya di con la cuestion
http://ww1.microchip.com/downloads/e...Doc/51682A.pdf pagina 10
gracias a todos por la ayuda !
05/04/2014 #25

Avatar de ByAxel

Hola.
Probando que cuente por cada ciclo de instrucción, una forma de probar el funcionamiento del TMR0 es usando un reloj externo que se puede controlar...
Un ejemplo en ASM.

Código:
   LIST P=16F628A
    INCLUDE	<P16F628A.INC>
    ERRORLEVEL	0,	-302

    __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF

    CBLOCK  0x20

    ENDC

    org     0x00
    goto    Configura
    org     0x05

Configura:
    banksel TRISA
    movlw   b'00010000' ; RA4 entrada
    movwf   TRISA
    clrf    TRISB
    movlw   b'10101000' ; Pulsos externos
    movwf   OPTION_REG
    banksel PORTA
    clrf    PORTA
    clrf    PORTB
    clrf    TMR0
Loop:
    btfsc   INTCON,2    ; Consulta por poleo, desborde
    goto    Desborde
    goto    Loop

Desborde:
    bcf     INTCON,2
    movlw   0x01
    xorwf   PORTB,F
    goto    Loop
    END
Perfecto no es pero en cierto modo se prueba que el Timer0 puede contar por cada ciclo de instrucción, si usar el prescaler.
La base de tiempos esta en 10ms que seria 10ms x 256 = 2.56s... es decir que el TMR0 se ha incrementado por cada ciclo del reloj, para este caso externo como se ve en la imagen...
Imágenes Adjuntas
Tipo de Archivo: jpg prbTMR0.jpg (86,6 KB (Kilobytes), 6 visitas)
05/04/2014 #26

Avatar de papirrin

creo que si estaba en un error:

*If PSA bit is SET (1), Prescaler is assigned to Watchdog Timer and
PS2:PS0 have no effect (TMR0 RATE = 1:1)
si se asigna el preescaler al WDT el timer0 se queda con un preescaler de 1:1, y se incrementa cada ciclo...

bueno eso no lo sabia XD

pd.el sexo nubla la razon
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.