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

Temas similares

04/06/2011 #1


Generar Frecuencia con Timer0
Soy algo nuevo en estos temas de los microcontraldores y me surgio un problema en el momento de generar un frecuencia de 38kHz con el PIC18F4550 ya que por la aplicacion en la que se esta usando no se puede utilizar PWM ya que estos pines estan ocupados para unos motores, mas sin embargo ocupo generar esta frecuencia para utilizar un sensor, A la hora de probar el siguiente codigo la frecuencia generada es de 15 Khz. Segun los calculos estoy correctamente la frecuencia pero no.. No se si se deba a algun fuse o tenga que ver con algun calculo :S


Este es el codigo:

#include <18f4550.h>
#fuses HSPLL,PLL5,CPUDIV1,NOWDT,NOPROTECT,NOLVP,PUT,BROWN OUT
#use fast_io(E)
#use delay(clock=48M)


#int_rtcc
void isr(void)
{
output_toggle(PIN_E0);
}


void main()
{
enable_interrupts(int_rtcc);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_DIV_4|78); //frecuencia de 38kHz
SET_TRIS_E( 0x02 );

while (TRUE)
{

if (INPUT(PIN_E1) == 0)
OUTPUT_HIGH(PIN_E2);
}
}



Cualquier ayuda sirve de mucho!
Gracias !
04/06/2011 #2

Avatar de Ferny

setup_timer_0(RTCC_DIV_4|78);

Eso creo que no se hace así, entiendo lo que quieres hacer y en teoría la línea debería ser así:

setup_timer_2(T2_DIV_BY_4, 78, 1);

He puesto el Timer2 copiado de un ejemplo mío, no estoy seguro de si eso te lo admite el Timer0, si no lo admite usa el Timer2.


Otra opción que también debería funcionar, es cambiar esto:

setup_timer_0(RTCC_DIV_4|78);

Por:

setup_timer_0(RTCC_DIV_4);

Y también en la interrupción precargar el Timer0 para que salte en 78 cuentas:

#int_rtcc
void isr(void)
{
output_toggle(PIN_E0);
set_timer0(177); // 177 = 255 - 78 (para obtener 38kHz)
}
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.