Timer precision on at91rm9200
Rochat Joël
jrochat at netplus.ch
Tue Oct 30 09:13:44 UTC 2007
Hello,
I'm working now on the rtems timers. I use an at91rm9200 with th csb337 bsp.
I generate an 1khz timer on a pio pin and i measur with an oscilloscop the
result of it. And I have a little difference with the expected value .
I measure 1,0012 ms but I shoud have 1.0 ms. 1 khz is not very high
frequency, I think it could be more precis.
I'v modified the bsp.h for my board :
#define BSP_MAIN_FREQ 20000000 /* 3.6864 MHz */
#define BSP_SLCK_FREQ 32768 /* 32.768 KHz */
I know that the bsp for csb337 was configurer with an 184 Mhz mck. My board
have an 180 Mhz mck. I didn't find where I could modifie it.
Here is a part of my code :
//definition
#define CONFIGURE_MICROSECONDS_PER_TICK 100
//timer declaration
status = rtems_timer_create (rtems_build_name( 'T', 'A', '1', ' ' ), &timerId);
status = rtems_timer_fire_after(timerId, 10, timer1kHz, NULL);
//function called by the timer
rtems_timer_service_routine timer1kHz (rtems_id timer_id,void *user_data)
{
if (gTick == TRUE)
{
*AT91C_PIOD_SODR = AT91C_PIO_PD1 ;
gTick = FALSE ;
}
else
{
*AT91C_PIOD_CODR = AT91C_PIO_PD1 ;
gTick = TRUE ;
}
rtems_timer_reset(timer_id) ;
}
I hop you can help me.
Have a nice day
Joel
More information about the users
mailing list