Перейти к содержанию
    

Почему не идет сигнал

Здравствуйте!

Все еще продолжаю разбираться с LPC2478. Наткнулся на интересную ситуацию:

Одни ножки чипа дергаются очень даже хорошо и стабильно, а некоторые либо вообще не дергаются, либо дергаются как-то коряво.

Например, дергаю P2.0:

 

FIO2DIR |= (1<<0);//Настраиваю P2.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

 

настроить эту ножку на GPIO

 

PINSEL0 = ~((1<<30)|(1<<31));//Настраиваю P0.15 на GPIO

 

то тогда, сразу после загрузки кода она дергается, но перестает работать после резета.

 

Граждане, помогите пожалуйста разобраться, что еще нужно для корректной работы с ножками проца, кроме настройки направления сигнала(input, output) и выбора функций ножки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если настроить вывод на что-то, отличное от GPIO, на регистры IOSET/CLR/PIN/DIR можно даже не смотреть - они перестают работать.

 

Чтобы "подёргать" ногой SCK, надо сконфигурировать модуль SPI (или SSP) и засунуть в регистр данных какой-нибудь байт. Правда, зачем такое нужно, не знаю :)

 

Что делать с "перестаёт работать после резета", не знаю. Пытаться понять, куда уходит программа (не в бут, случаем?..)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы "подёргать" ногой SCK, надо сконфигурировать модуль SPI (или SSP) и засунуть в регистр данных какой-нибудь байт. Правда, зачем такое нужно, не знаю

 

Да я пытался "вручную", без регистров SPI, пообщаться с контроллером сенсорной панели через выходы CS, CLK, MISO, MOSI. А для этого нужно, чтобы дергался CLK. Таким образом я хочу проверить, правильно ли я принимаю данные по SPI.

 

Что делать с "перестаёт работать после резета", не знаю. Пытаться понять, куда уходит программа (не в бут, случаем?..)

 

А не подскажите, как это проверить?

Изменено пользователем Novichok1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если настроить вывод на что-то, отличное от GPIO, на регистры IOSET/CLR/PIN/DIR можно даже не смотреть - они перестают работать.

 

А за это большое спасибо! Я даже не подозревал о таком)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...