SoloCodigo
Programación Específica => Microcontroladores => Mensaje iniciado por: Alcon_99 en Miércoles 27 de Septiembre de 2006, 18:40
-
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
-
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
-
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: )
-
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: )
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
-
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)
-
Logre hacerlo andar aca les dejo el codigo fuente para que lo chusmeen, el capacitor que se pone en el ccristal es de 18pf y hay que ponerlo en modo HS porque es de 10 MHZ sino no anda (estube probando varias veces eso y salio andando como quedo el codigo fuente)
Gracias a todos los que me ayudaron!!! :hola: