TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: sztongo en 26 de Diciembre de 2008, 17:52:33
-
Hace un tiempo comence a trabajar con el 16f84 con muy buenos resultados, y me decidi pasar a algo mas grande manteniendome en esa linea, reforme el
programador pero me encuentro que la libreria que mas utilizo me fuciona mal ( la de retardos).estoy usando el 16f877 con un cuarzo de 4mhz al igual que el
f84 pero un retardo de 20 seg. me lo realiza en 500ms. que estoy haciendo mal? sin que esta libreria me funcione me las veo negras. hay alguna otra libreria que
me puedan recomendar? no deberia funcionar igual? espero sus respuestas y desde ya mil gracias. me despido desde comodoro rivadavia, chubut
-
hola amigo
Podrias pegar la rutina y el fuente, seria más facil encontrar el error.
Verifica la configuracion interna, del pic en relacion con el clock.
un saludo
-
Pregunta tonta (o no). Cuando pasas la rutina del f84 al f877 cambias las EQUS que definen los registros de RAM que vas a usar en la demora?.
Lo digo porque no puedes poner las mismas direcciones en uno que en el otro.
saludos tapi8
-
hola pajaro, gracias por contestar. La libreria de retardos la hice funcionar modificandola. pero no entiendo porque no fuciona como es. Le hice mas bucles y anda
La libreria es una de lasdel libro de RA-MA desarrolo de proyecos con pic 16f84, el cual recomiendo fervorosamente. pero no entiendo si usa las mismas 35 instrucciones y el mismo oscilador con el mismo cistal no anda,ni las librerias del lcd ni el i2c, algo estoy haciendo mal pero con el 16f877a no me andan. espero respuestas... mil gracias
-
gracias tapi8 me devolves la esperanza... por ahy debe estar mi macana... me aclaras un poquito mas. gracias
-
me fije lo que me decias. pero no tiene equ's la libreria solo hay cblock endc, donde hubico los contadores.
-
Seguro que el cblok para el f84 esta en oc, si es asi lo tienes que cambiar porque estas en los sfr, creo que en el PIR1, y la cambias por 2oh, a partir de esa direccion ya son posiciones "tuyas" de RAM.
TAPI8
-
ya lo voy a probar capo. y entonces la posicion de ram tambien me va a cambiar para las interrupciones... estoy emocionado le veo la punta al iceber.
gracias loco.
-
Es que en 0Ch en el f877 estabas poniendo los registros de la demora en encima de flags de interrupcion. si en el programa tienes interrupciones del f84 al f877 tambien te van a cambiar. Cuidado con esto tambien.
suerte sztongo
-
el tema parece estar entonces en que las posiciones de los registros se me mezclan con las del ram disponible. voy a tener que comparar sus arquitecturas
gracias.
-
si es posible que haya confusión de posiciones de los registros
quizá también ahora sea necesario configurar otros registros, como el ADCON1 si no me equivoco, sino utilizas entradas analógicas, para configurarlas a digitales, quizá haya otro registro más a configurar
y con el _config también hay que tener cuidado
-
si es posible que haya confusión de posiciones de los registros
quizá también ahora sea necesario configurar otros registros, como el ADCON1 si no me equivoco, sino utilizas entradas analógicas, para configurarlas a digitales, quizá haya otro registro más a configurar
y con el _config también hay que tener cuidado
Supongo vienes de assembly.
Primero lo que comentan del cblock, yo siempre lo he manejado asi desde la 20H,revisen el mapa de memoria ahi viene claramente desde donde puedes trabajar.
Segundo , este microcontrolador posee ADC y COMPARADORES.Asi que es necesario configurar los pines.
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;**********************************************************************
ORG 0x000 ; processor reset vector
nop ; nop required for icd
goto main ; go to beginning of program
ORG 0x020 ; interrupt vector location
CBLOCK 0X20
RAM1 ;20 direcion
RAM2 ;21
RAM3 ;22
ENDC
; CONFIGURACION DE PUERTOS
BCF STATUS,5
; MOVLW 0X07 ; COMPARADORES DESACTIVADOS
; MOVWF CMCON
CLRF PORTA
clrf PORTC
clrf PORTB
BSF STATUS,5
CLRF TRISC ; PUERTO C SALIDA
CLRF TRISA ; PUERTO A SALIDA
CLRF TRISB
BCF STATUS,5
;--------------------------------------------------------------------
;--- CONFUGURACION ADC
BANKSEL ADCON0
CLRF ADCON0 ; ADC OFF
BANKSEL ADCON1
MOVLW b'00000110
MOVWF ADCON1 ; PINES DIGITALES
-
http://www.alos.5u.com/indexpic877.htm
En esta direccion tienes un curso sobre el 16f877. En el te explican casi todo lo que hay que saber sobre el (ademas en español).
Lo pongo porque aunque AKENAFAB ya te puso toda la configuracion para este programa cuando quieras hacer otras cosas necesitaras saber como hacer cada cosa y para cada programa en particular.
saudos tapi8
-
Gracias tapi, me esta llendo muy bien. Me falta el manejo de la eeprom. con el 16f84 la manejo bien pero todavia no di en la tecla con el 16f877. alguna pista de donde le puedo estar errando? mil gracias. Saludos.