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

Temas similares

27/10/2010 #1


ayuda con retrasos en pic
Hola q tal, recien estoy aprendiendo a usar pic y tengo un problema al hacer retrasos de 1 microsegundo. Estoy usando el PIC16F877A con un OSC de 20MHz.

Si quiero hacer un delay de sólo 1 microsegundo sería así:

;---líneas de código---
call microseg
;---líneas de código---

donde la rutina microseg es:

microseg
nop
return
Pero si quiero hacerlo para más microsegundos hago esto

;---líneas de código---
movlw .10
call ret_us
goto $ ; para simular en el mplab en esta linea aplico un breakpoint
;---líneas de código---

donde la rutina de ret_us es:

ret_us
movwf 20H
ret1
nop
nop
decfsz 20H
goto ret1
return
al hacer esto obtengo lo ingresado más un microsegundo, es decir si almaceno 10 (en decimal) en 20H el tiempo q transcurre es 11 microsegundos. Lo mismo sucede para números hasta 255.

Hay alguna forma de reducir ese exceso de 1 microsegundo?

Espero que me puedan ayudar

Gracias por adelantado
27/10/2010 #2

Avatar de fdesergio

Respuesta: ayuda con retrasos en pic
Recuerda que por la arquitectura la Finterna seria 20Mhz/4 = 5Mhz y el periodo seria 0.2 mSEG, por lo tanto para un retardo de 1mSEG debes usar al menos 5 instrucciones (sin saltos) y lo otro puede ser porque cargas el valor en W antes de llamar la subrutina y luego la llamas, no se si me equivoco pero al hacer el llamado el PIC modifica el PC (contador de programa y usa el W) y ahi puede estar el error, llama la subrutina y dentro de ella carga el valor de W, proba y nos contas, chauuuuuuuu
27/10/2010 #3

Avatar de el-rey-julien

Respuesta: ayuda con retrasos en pic
nop
nop
nop
asta llegar al valor ,,sera?
27/10/2010 #4


Respuesta: ayuda con retrasos en pic
es q quiero aplicarlo como una subrutina, si quiero 250 uS no creo q se vea bien rellenar con puros nops :S
27/10/2010 #5

Avatar de el-rey-julien

Respuesta: ayuda con retrasos en pic
hee cuando se compila eso no se ve ,mañana subo unas subrutinas de tiempo que quizás te sirvan,no las subo hoy porque estoy en casa y el cd lo tengo en la fabrica
saludos
27/10/2010 #6


Respuesta: ayuda con retrasos en pic
ya brother, te lo agradezco
27/10/2010 #7

Avatar de el-rey-julien

Respuesta: ayuda con retrasos en pic
PD:
acá lo tenia seguro te sirve es cuestión de probar nomas ,el oscilador es de 4 mhz
monas agrega en el mismo direcyorio este archivo y en el programa principal pone #include retardos.inc
luego en donde quieran el retardo invoca con call el tiempo deseado

ejemplo call Retardo_10micros
Archivos Adjuntos
Tipo de Archivo: zip retardos.zip (1,9 KB (Kilobytes), 23 visitas)
28/10/2010 #8

Avatar de angelcastell

Respuesta: ayuda con retrasos en pic
Os paso un programa que te genera el código para los delays.

Espero que te ayude.
Archivos Adjuntos
Tipo de Archivo: rar Picdel_sp.rar (83,7 KB (Kilobytes), 16 visitas)
28/10/2010 #9


Respuesta: ayuda con retrasos en pic
gracias por su ayuda!!
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.