Programación Específica > Microcontroladores
Tmr0
Alcon_99:
hola que tal gracias por ayudarme, estoy treatando de utilizar el tmro para hacer un retardo y resulta que en la simulacion anda bien pero cuando lo pruebo fisicamente no anda.
Es decir lo que hace el programa hacre que prenda un led por 50 mseg y apagarlo por 50mseg pero ni prende ni apaga, no se donde puede estar el problema.
Gracias por todo.
Este es el codigo
list P=16F877
#include P16F877.INC
__CONFIG _HS_OSC & _PWRTE_ON & _BODEN_OFF & _CP_OFF & _WDT_OFF
;*******************************************************************
; Declaración de variables que voy a utilizar en el programa
;*******************************************************************
Flag EQU H'22'
RB1 EQU D'01'
org 00h
goto configurar
org 04h
movlw B'00000001'
movwf TMR0 incf Flag,1
bcf INTCON,2
retfie
org 012h
configurar movlw B'00000000'
movwf Flag
movlw B'10100000'
movwf INTCON ; habilitamos GIE y T0IE
clrf STATUS
bsf STATUS,RP0
movlw B'00000111'
movwf OPTION_REG
movlw B'00000000'
movwf TRISB
bcf STATUS,RP0
clrf PORTB goto main
retardo btfss Flag,1
goto retardo
return
main bsf PORTB,RB1 ;prende un led
movlw B'00000001' ; cargo w con 1
movwf TMR0 ; lo paso a TMR0
call retardo
bcf PORTB,RB1 ;Apaga el led
movlw B'00000000'
movwf Flag
call retardo
goto main
end
Alternative:
Saludos.
Mira miro que tu declaracion del Oscilador es HS, y si utulusas un crystal o resistencia no te va a funcionar, y si en el simulador le colocas un XT por eso te funciona. Le hice unas modificaciones y con eso te puede funcionar. La declaracion de RB1 no hace falta que lo declares ya que como utilizas la libreria lo carga por de Fault todos los nombres de cada bit de cada registro.
No saque los calculos para saber si el tiempo es correcto ya que no especificas de cuanto es el oscilador ni que tipo de oscilador utilisas.
Bye. :hola:
P.D. Te dejo tu archivo adjunto comprimido en en .RAR, si tienes dudas solo escribe
Alcon_99:
Gracias, pero estuve biendo el .rar que me mandaste y resulta que uso un cristal de 10 mega (por lo que he leido ya que soy muy nuevito) necesito poner la sigla HS sino el pic no anda, por lo menos eso es lo que me paso el otro dia antes de fijarme en la hoja de datos del fabricante.
Despue te digo si anduvo (espremo que si!!!! :hola: )
lalo_soft:
--- Cita de: "Alcon_99" --- Gracias, pero estuve biendo el .rar que me mandaste y resulta que uso un cristal de 10 mega (por lo que he leido ya que soy muy nuevito) necesito poner la sigla HS sino el pic no anda, por lo menos eso es lo que me paso el otro dia antes de fijarme en la hoja de datos del fabricante.
Despue te digo si anduvo (espremo que si!!!! :hola: )
--- Fin de la cita ---
El modo HS solo es valido para osciladores externos (tipo chip) para cuando se utilisa un
cristal (no importa la frecuencia de este) se debe seleccionar el modo XT.
nota: para cristales de frecuencias >= 10MHZ los condensadores no deben ser mayor de 18pf
Alcon_99:
Hola nuevamente, resulta que recien hoy pude probar el tmr0 y no me anda el oscilador, lo medi con el osciloscopio y no hay nada les mando el codigo para que lo miren y me digan porque no me anda esto ya que tendria que andar (por lo menos por simulacion anda)
Navegación
[#] Página Siguiente
Ir a la versión completa