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

VladislavS

Свой
  • Постов

    1 225
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

VladislavS стал победителем дня 25 декабря 2023

VladislavS имел наиболее популярный контент!

Репутация

29 Очень хороший

Информация о VladislavS

  • Звание
    Профессионал
    Профессионал
  • День рождения 07.05.1976

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

4 986 просмотров профиля
  1. Это чтобы успеть лишний раз подумать а надо ли оно мне :)))
  2. Что-то не очень похоже на STM32. Какой-то клон?
  3. +1. Что 150 мкс, что 150 мс - суть одно и то же. При внутрисхемной прошивке вообще секунды контроллер в ауте. Схемотехника должна это предусматривать.
  4. А где отладка то? Регистры процессора и периферии, дизасм?
  5. Чисто в педагогических целях стоит решить задачу самому.
  6. J-Link это всего лишь адаптер, он ничего сам не делает. Делает программа, которая с его помощью прошивает. Программ этих чуть больше чем дофига и каждая делает посвоему. Собственно и OpenOCD через J-link шить умеет.
  7. На время отладки все остальные прерывания отключить, колбэки убрать. Добиться отсутствия пропусков и понемногу возвращать функционал.
  8. Вообще-то, Кернигана и Ритчи 🙂 Это никому не повредит. Но что-то мне подсказывает, что там ни про работу с volatile сущностями, ни про оптимизирующий компилятор, ни про то как данные с задержками по шинам бегают, ни вообще про эмбэдд ни слова не будет. А до Страуструпа ещё надо дорасти.
  9. Тут, кстати, "они там все" запросто получат двойной вход в одно и то же прерывание. Но об этом хомячкам не расскажут.
  10. Между чтение для обработки и повторным чтением для очистки могло произойти что угодно. Это Секрет Полишинеля. Впрочем, тот код что для них индусы пишут, ещё ничего. :)))
  11. А потом у вас прерывания теряются. Тут вы очистили флаги, которые "вскочили" во время обработки текущего прерывания, не обработав. Смотреть прямо в регистре периферии микроконтроллер не может. Он сначала считывает в регистр процессора, а затем смотрит. Локальная переменная будет расположена в регистре процессора. Не нужно много раз читать регистр статуса в регистр процессора, это напрасная трата времени в прерывании.
  12. Искать надо там где потерял, а не там где лучше видно. Вроде это очевидно.
  13. Да там много, на первых страницах разделела ARM, RISC-V читать.
  14. Теоретически да. Несколько тактов "под угрозой". Безопаснее будет TIMER_INTF(TIMER1) = ~i;
  15. А я бы вообще вот так сделал u32 i = TIMER_INTF(TIMER1); TIMER_INTF(TIMER1) = 0; if (i & TIMER_INTF_CH0IF) { ... } if (i & TIMER_INTF_CH1IF) { ... }
×
×
  • Создать...