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

LPC1766: порты ввода-вывода тормозят?

Это из серии вредных советов? ;)

 

Нет, это из серии "понятия не имею о познаниях ТС".

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


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

Вот этот регистр уже отражает именно внутреннее состояние порта (состояние выходного драйвера) на вывод.

Таким образом ваш код должен был иметь вид:

FIOPIN = FIOSET ^ MY_MASK;

Таким образом не будет никакой "аналоговой" обратной связи по физическому уровню на пине порта.

 

P.S.

В начале работы с LPC сам столкнулся с такой фичей.

Это побудило просто внимательно перечитать документацию. После прочтения становится всё очевидно.

 

Видимо я как-то неверно понял документацию или читал невнимательно. Спасибо вам большое!

 

 

Самая простая и тупая доработка:

Собственно, я в первом посте писал, что в начале так и было и тоже не очень стабильно работало :)

 

 

Предлагаю Вам для начала посмотреть, правильно ли происходит процедура инициализации частот ядра и т.п. Выложите сюда.

 

Если не поможет, предлагаю попробовать отключить акселератор FLASH памяти (FLASHCFG_bit.FLASHTIM)

 

Если и это не поможет, посмотрите настройки компилятора. Какой компилятор? Какие настройки оптимизации? Попробуйте полностью отключить оптимизацию. У меня при включенной оптимизации компилятор выдавал те ещё конструкции! Вот после такого у меня ничего не работало!

 

Собственно, частоту ядра я выводил на ногу и осциллографом проверял, вроде все правильно было.

С акселератором тоже игрался (его, вроде как, вообще отключить нельзя) - на любых настройках поведение было одинаковым.

Оптимизация -O0, компилятор кейловский.

 

Но я таки полагаю, что Petka прав.

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


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

У меня при включенной оптимизации компилятор выдавал те ещё конструкции! Вот после такого у меня ничего не работало!

Нет, это из серии "понятия не имею о познаниях ТС".

Тут уже пошла серия совсем не про топикстартера. Это серия про шаманские танцы.

 

 

Собственно, я в первом посте писал, что в начале так и было и тоже не очень стабильно работало :)

Странно это. Либо было не так, либо я чего-то не понимаю. С основной проблемой - чтение регистра пина сразу после записи мой вариант успешно справляется. Ну да, неоптимально, с потенциальными граблями при многопоточности, но работать должно.

 

 

Но я таки полагаю, что Petka прав.

С этим полностью согласен.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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