Novichok1 0 18 августа, 2009 Опубликовано 18 августа, 2009 · Жалоба Здравствуйте! Все еще продолжаю разбираться с 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) и выбора функций ножки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 18 августа, 2009 Опубликовано 18 августа, 2009 · Жалоба Если настроить вывод на что-то, отличное от GPIO, на регистры IOSET/CLR/PIN/DIR можно даже не смотреть - они перестают работать. Чтобы "подёргать" ногой SCK, надо сконфигурировать модуль SPI (или SSP) и засунуть в регистр данных какой-нибудь байт. Правда, зачем такое нужно, не знаю :) Что делать с "перестаёт работать после резета", не знаю. Пытаться понять, куда уходит программа (не в бут, случаем?..) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Novichok1 0 19 августа, 2009 Опубликовано 19 августа, 2009 (изменено) · Жалоба Чтобы "подёргать" ногой SCK, надо сконфигурировать модуль SPI (или SSP) и засунуть в регистр данных какой-нибудь байт. Правда, зачем такое нужно, не знаю Да я пытался "вручную", без регистров SPI, пообщаться с контроллером сенсорной панели через выходы CS, CLK, MISO, MOSI. А для этого нужно, чтобы дергался CLK. Таким образом я хочу проверить, правильно ли я принимаю данные по SPI. Что делать с "перестаёт работать после резета", не знаю. Пытаться понять, куда уходит программа (не в бут, случаем?..) А не подскажите, как это проверить? Изменено 19 августа, 2009 пользователем Novichok1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Novichok1 0 19 августа, 2009 Опубликовано 19 августа, 2009 · Жалоба Если настроить вывод на что-то, отличное от GPIO, на регистры IOSET/CLR/PIN/DIR можно даже не смотреть - они перестают работать. А за это большое спасибо! Я даже не подозревал о таком) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться