Цитата(Andy Mozzhevilov @ Aug 24 2009, 14:21)

Погрешность в частоте? Или фронт скачет? Как настраиваете таймер?
В обработчике прерывания таймера изменяю дискр.выход. Осциллографом смотрю изменения на ноге.
Импульсы приходят не вовремя - скачет частота.
Вот так настраиваю таймер:
CODE
void clock_init2(Int32U IntrPriority)
{
PCONP_bit.PCTIM2 = 1;// Enable TMR2 clk
T2TCR_bit.CE = 0; // counting disable
T2TCR_bit.CR = 1; // set reset
T2TCR_bit.CR = 0; // release reset
T2CTCR_bit.CTM = 0; // Timer Mode: every rising PCLK edge
T2MCR_bit.MR0I = 1; // Enable Interrupt on MR0
T2MCR_bit.MR0R = 1; // Enable reset on MR0
T2MCR_bit.MR0S = 0; // Disable stop on MR0
// set timer 2 period
T2PR = 0;
T2MR0 = SYS_GetFpclk(TIMER2_PCLK_OFFSET)/(100000);
T2IR_bit.MR0INT = 1; // clear pending interrupt
VIC_SetVectoredIRQ((timer_handler)Timer2IntrHandler,IntrPriority,VIC_TIMER2);
VICINTENABLE |= 1UL << VIC_TIMER2;
T2TCR_bit.CE = 1; // counting Enable
}
static __irq void Timer2IntrHandler (void)
{
T2IR_bit.MR0INT = 1;
FIO4_bit.P4_31 ^=1;
VICADDRESS = 0;
}