Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Watchdog LPC23xx для системных тиков FreeRTOS
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
elektronshik
Недавно пришлось портировать FreeRTOS на LPC2368, так вот оказалось у филипсов отсутствует спец таймер для генерации системных тиков (миллисекундный интервал). Все 4 таймера и ШИМ нужны для др. задач. А WDT болтается без толку. Можно ли как-нибудь организовать его работу, чтоб он постоянно, с интервалом в 1 мс генерировал IRQ, и не сбрасывал контроллер?
Пробовал по всякому настраивать получилось только со сбросом.
Если настроить так:
Код
WDMOD_bit.WDEN = 1; // Watchdog interrupt mode: debug with the Watchdog interrupt but no WDRESET enabled.
WDMOD_bit.WDRESET = 0; // No reset
WDCLKSEL_bit.WDSEL = 0x01; // Selects the APB peripheral clock (PCLK) as the Watchdog clock source.
WDTC = ((configCPU_CLOCK_HZ / configTICK_RATE_HZ) - 1); // Watchdog time-out interval.
WDFEED = 0xAA;
WDFEED = 0x55;    
install_irq(VIC_WDT,vPortPreemptiveTick, 1);

прерывание возникает, но выйти из него можно только отключив в VIC, при этом WDT перестает тикать.
Вобщем на LPC я перешел недавно, подскажите что не так делаю.
zltigo
Цитата(elektronshik @ Feb 26 2009, 14:38) *
так вот оказалось у филипсов....

...имеется в наличии RTC, а еще есть входы внешних прерываний, а еще масса интересной переиферии генерирующей прерывания через определеное количество тиков после запуска.
А Watchdog действительно просто так не обманывается, и это правильно.
elektronshik
Цитата(zltigo @ Feb 26 2009, 14:56) *
...имеется в наличии RTC

Часы тоже нужны...
"interrupt approximately every 977 microseconds." не подходит - надо точно 1 мс.

Цитата(zltigo @ Feb 26 2009, 14:56) *
а еще есть входы внешних прерываний

Это чтобы внешнюю схему таймера городить?
Цитата(zltigo @ Feb 26 2009, 14:56) *
масса интересной переиферии генерирующей прерывания через определеное количество тиков после запуска.

Надеюсь это не АЦП?
Цитата(zltigo @ Feb 26 2009, 14:56) *
А Watchdog действительно просто так не обманывается, и это правильно.

crying.gif
zltigo
Цитата(elektronshik @ Feb 26 2009, 15:48) *
"interrupt approximately every 977 microseconds." не подходит - надо точно 1 мс.

Очень сильно сомневаюсь, что использовании часов нужно "точно"
Цитата
Это чтобы внешнюю схему таймера городить?

Или перемычку на подходящую перефиферию.
Цитата
Надеюсь это не АЦП?

Может и ADC, может и другое.
KRS
а какая у вас частота PWM? может его можно использовать и как системный таймер.
elektronshik
Цитата(KRS @ Feb 26 2009, 16:54) *
а какая у вас частота PWM? может его можно использовать и как системный таймер.

Можно все что угодно использовать как системный таймер, но меня интересует именно WDT, как самая бесполезная для меня периферия.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.