Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC2364 с Keil RTOS не управляются некоторые линии портов
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Д_М
Здравствуйте!
ARM только осваиваю. Мигание светодиодом, внешнее прерывание, прерывание от таймера и UART, конфигурацию тактирования освоил сам. Столкнулся с проблемой при освоении Keil RTOS. Программа, которая нормально работает без RTOS (по прерыванию от таймера), частично не работает под RTOS. Не подчиняются некоторые линии портов общего назначения. А именно Port1. Другие не проверял. Даже те линии, которые не были инициализированны, как выходы, держат чёткую единицу, или ноль. На команды сброса и установки линии порта не реагируют. На том же порте другие линии работают нормально. Какой-либо закономерности не выявил. В частности 29 в единице, 28 в нуле, 15 и 16 работают нормально. Без RTOS "ноподчинения" не замечено. Сталкивался ли кто-нибудь, что Keil RTOS позволяет себе что-то лишнее?
Спасибо!
Ivan Panov
У меня два проекта на LPC2364 и Keil RTOS и оба прекрасно работают с периферией. "Странности" в поведении программы чаще всего бывают из-за недостаточного размера стека. Попробуйте выделить больше памяти под стек.
Д_М
Цитата(Ivan Panov @ Feb 16 2013, 00:50) *
У меня два проекта на LPC2364 и Keil RTOS и оба прекрасно работают с периферией. "Странности" в поведении программы чаще всего бывают из-за недостаточного размера стека. Попробуйте выделить больше памяти под стек.


Спасибо за совет!
Как ведут себя программы при недостаточном размере стека мне хорошо знакомо. В моей практике это были нестабильные глюки и перезаргузки. В этом же случает наоборот всё стабильно. Одни линии в единице, другие в нуле, третьи нормально работают. Использовал demo пример от Keil. Он то должен вроде бы работать!
esaulenka
Очередной подземный стук...

Как вариант - "неправильные" ноги сконфигурированы не как GPIO, а какая-то периферия (для P1.28 P1.29 - выходы таймера, например).
Методика лечения - прочитать раздел даташита про переназначение ног и внимательно проверить код примера на предмет лишних переназначений (внимательно! там один регистр сразу переназначает 16 выводов).
SyncLair
Банально, конечно, но:
Цитата(esaulenka @ Feb 18 2013, 20:00) *
Методика лечения - прочитать раздел даташита про переназначение ног ...

Методика лечения - прочитать значение регистра про переназначение ног ))
Д_М
Спасибо огромное за поддержку! Причина, как всегда, была нелепой. В примере от Keil была ещё работа с LCD, который и захватывал линии порта. Отключил эту задачу, и всё заработало.
toweroff
Цитата(Д_М @ Feb 18 2013, 22:11) *
В примере от Keil...

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