Пробую работать с LPC1311.
Вот моя тестовая программака.
Код
#include "LPC13xx.h"
#include "clkconfig.h"
volatile char i;
void CT16B0_IRQHandler(void)
{
LPC_TMR16B0->IR = 0x3F; /*clear flag*/
LPC_TMR16B0->MR0 = i;
--i;
return;
}
int main (void)
{
i = 0;
/* Enable AHB clock to the GPIO domain. */
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
SystemInit();
// Init Timer16_B0
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7);
LPC_TMR16B0->PR = LPC_TMR16B0->CCR = 0;
LPC_IOCON->PIO0_8 = 0x02;
LPC_IOCON->JTAG_TCK_PIO0_10 = 0x03;
LPC_TMR16B0->MR1 = 0xFF;/*TimerInterval*/
LPC_TMR16B0->MR0 =1;
LPC_TMR16B0->MR2 = 0x1F; //test signal with constant pulse width
LPC_TMR16B0->MCR=(1<<4)| /*Reset on MR1*/
(1<<3); /*Interrupt MR1*/
/* PWM mode is enabled for CT16B0_MAT0 */
LPC_TMR16B0->PWMC = 1 + (1<<2);
NVIC_EnableIRQ(TIMER_16_0_IRQn);
LPC_TMR16B0->TCR = 1; /* enable Timer */
while (1) {};
}
Здесь настраиваю таймер на выдачу двух ШИМов: один с постоянной скважностью (MR2), другой с изменяемой(MR0).
В обработчике прерывания по переполнению таймера (0xFF) делаю либо инкремент скважности, либо декремент.
Сигнал с выхода MR0 пропускаю через RC-фильтр (R=5.6 кОм, С=2.2 нФ). На выходе RC имею пилу.
Так вот, при инкременте все замечательно.
При декременте на пиле появляется зазубрина.
Откуда она появляется? И почему ширина импулься с выхода MR0 внезапно становится равна нулю при декременте?
Чертовщина какая-то ))).
Писал в службу поддержки NXP и вот что они мне ответили
Цитата
I did a test with your program on a MCB1000 board with the LPC1343 micro and and did not see any difference. The choice of output might be the problem. Try an other output mode in IOCON register (bit 3 and 4).
The jitter and the rise and fall time are the same with increment or decerment i
На сайте NXP нет почтового адреса (e-mail) службы поддержки, а только WEB-форма, которая позволяет отправлять только текст.
Может
shahr посодействует в получении ответа на мой вопрос. Или
3.14 повторит мой эксперимент.
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.