Все еще продолжаю разбираться с LPC2478. Наткнулся на интересную ситуацию:
Одни ножки чипа дергаются очень даже хорошо и стабильно, а некоторые либо вообще не дергаются, либо дергаются как-то коряво.
Например, дергаю P2.0:
Код
FIO2DIR |= (1<<0);//Настраиваю P2.0 на выход
PINSEL4 = ~((1<<0)|(1<<1));//Настраиваю P2.0 на GPIO
while(1)
{
FIO2SET |= (1<<0);
FIO2CLR |= (1<<0);
}
PINSEL4 = ~((1<<0)|(1<<1));//Настраиваю P2.0 на GPIO
while(1)
{
FIO2SET |= (1<<0);
FIO2CLR |= (1<<0);
}
Все прекрасно, все работает.
А вот если также дергать ножку P0.15 (CLK)
Код
FIO0DIR |= (1<<15);//Настраиваю P0.15 на выход
PINSEL0 = (1<<30)|(1<<31);//Настраиваю P0.15 на CLK
while(1)
{
FIO0SET |= (1<<15);
FIO0CLR |= (1<<15);
}
PINSEL0 = (1<<30)|(1<<31);//Настраиваю P0.15 на CLK
while(1)
{
FIO0SET |= (1<<15);
FIO0CLR |= (1<<15);
}
То не работает (проверял осциллографом)- эта ножка не дрыгается.
А вот если вместо
Код
PINSEL0 = (1<<30)|(1<<31);//Настраиваю P0.15 на CLK
настроить эту ножку на GPIO
Код
PINSEL0 = ~((1<<30)|(1<<31));//Настраиваю P0.15 на GPIO
то тогда, сразу после загрузки кода она дергается, но перестает работать после резета.
Граждане, помогите пожалуйста разобраться, что еще нужно для корректной работы с ножками проца, кроме настройки направления сигнала(input, output) и выбора функций ножки.