Здравствуйте!
У меня похожая ситуация, только наоборот немного.. Я пока начинающий в армах.
Использую МК LPC2368.
Среда: IAR Embedded Workbench 5.0 Evaluation.
Конструкционно обусловлено использование выводов 68 (P2.5), 69 (P2.4), 70 (P2.3), 73 (P2.2), 74 (P2.1), 75 (P2.0).
Не получается изменять уровень на выводах.
Пример программы:
Код
//*********************************
#include <iolpc2368.h>
int main(void)
{
PINSEL4_bit.P2_0=0;
FIO2MASK_bit.P2_0=0;
FIO2DIR_bit.P2_0=1;
...
FIO2SET_bit.P2_0=1;
FIO2CLR_bit.P2_0=1;
...
}
//*********************************
В datasheet видел следующее: GPIO порты PORT0 и PORT1 могут работать как в обычном режиме, так и в улучшенном (fast mode).
А порты PORT2, PORT3... могут работать только в fast.
Пробовал писать подобную программу для PORT0, только использовал регистры IO0DIR, IO0SET, IO0CLR - программа работала (и в нормальном выполнении, и в режиме debug пошагово результат был виден и в watch, и на осциллографе на 76 выводе для P0.9).
Потом решил использовать режим fast.
Установка бита GPIOM в регисте SCS не помогла, т.к. регистры FIO0PIN, FIOSET... не работали (в FIO0PIN значение не изменялось ни в watch, ни на осциллографе, значение бита GPIOM изменялось).
В общем получается только "дергать" ногой порта 0 и только в legacy режиме.
Enhanced fast режим не работает ни для PORT0 ни для PORT2.
Подскажите, пожалуйста, в чём может быть дело?
Причина редактирования: Оформление цитаты исходника.