Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GPIO LPC2378
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Ivan_Kov
Играюсь с платой MCB2300. Обнаружил глюк в работе. Есть там динамик, подключенный на порт ввода-вывода P0.26. Порт 0 управляется 2-мя группами регистров: быстрые и унаследованные от старых моделей.

Быстрые: FIO0DIR, FIO0SET, FIO0CLR и т.д.
Унаследованные: IO0DIR, IO0SET, IO0CLR.

Ну так вот, если я пытаюсь управлять P0.26 через быстрые регистры:
CODE

ClrBit(PINSEL1,20);ClrBit(PINSEL1,21); // Назначаем пину функцию GPIO
SetBit(FIO0DIR,26); // кофигурим на выход

if(GetBit(FIO0SET,26)) // "втягиваем" или "вытягиваем" динамик
SetBit(FIO0CLR,26);
else
SetBit(FIO0SET,26);
ничего не работает.

А если делаем то же самое, через унаследованные :
CODE

ClrBit(PINSEL1,20);ClrBit(PINSEL1,21); // Назначаем пину функцию GPIO
SetBit(IO0DIR,26); // кофигурим на выход

if(GetBit(IO0SET,26)) // "втягиваем" или "вытягиваем" динамик
SetBit(IO0CLR,26);
else
SetBit(IO0SET,26);
все работает, динамик звучит.

Правильность адресов регистров проверял несколько раз.
На пинах P2.0 - P2.7 прекрасно получилось мигать светодиодами, а там только быстрые регистры.

Могу сделать только один вывод - глюк микроконтроллера, вот только в ERRATA (2006 Nov 16) его нету. Может ли кто-то подтвердить или опровергнуть мой вывод?
sdu
Ещё регистр FIOxMASK должен быть очищен
Ivan_Kov
Цитата(sdu @ Feb 16 2007, 17:58) *
Ещё регистр FIOxMASK должен быть очищен

Он по умолчанию = 0
Здесь проблем нет,я проверял.
Abo
А еще с регистре SCS надо младший бит в 1 поставить
Ivan_Kov
Цитата(Abo @ Feb 19 2007, 09:29) *
А еще с регистре SCS надо младший бит в 1 поставить

Точно!!!
Спасибо друг, в этом и был затык.
а я уж начал думать, что нашел новый глюк :-)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.