Jump to content

    

pyroman

Участник
  • Content Count

    67
  • Joined

  • Last visited

Community Reputation

0 Обычный

About pyroman

  • Rank
    Участник

Recent Profile Visitors

862 profile views
  1. А как же вложенные подпрограммы?
  2. Можно использовать мультиплексор типа MCP23S17
  3. Чёртовы извращенцы :)
  4. Потому что это самый простой бесполезный таймер, который, к тому же, присутствует во всех МК. прибавил+сравнил+переход к началу цикла со сбросом конвейера, может быть, но это не точно
  5. Всё просто - меняем состояние одного бита в одном регистре. В топку HAL bitset(GPIOA->MODER,0); - выход bitclr(GPIOA->MODER,0); - вход
  6. Мне Cube удобно использовать при изучении неосвоенной ещё мною периферии STM32. Когда собираешь макетку с необходимой обвязкой, создаешь кубом готовый проект и можно проверить, что макет собран правильно и работает, как нужно. После я постепенно ухожу от куба и пишу свой код. Где непонятно, смотрю порядок действий и состояние регистров периферии, настроенной кубом, сравниваю со своим кодом. Так освоил Ethernet и USB.
  7. Может я не прав, но, вроде, у нелицензионной IAR для AVR ограничение на размер кода в 32 кБ?
  8. ldr R1,[R0] ldr R2,[R0,#4] movs R3,#4 add R1,R3 add R1,R2 ldr R1,[R0] movs R3,#4 add R1,R3 ldr R2,[R0,#4] add R1,R2 Вот два варианта кода, делающих одно и то же, с одним набором команд, но в разной последовательности. Как вы считаете - время выполнения будет одинаковым или разным?
  9. Портировать может и просто, если не собираетесь продолжать этап 2 и далее. По-моему, перевести на батарейное питание - это равноценно удвоению уже проделанной работы.
  10. С таким же успехом можно написать - "И активируется сразу после разрешения". И даташит указывает "Interrupt set-enable registers (NVIC_ISERx)". Где вы тут увидели, допустим, unmasked? В конце концов, не придирайтесь к словам :)
  11. А какая разница? Суть то одинаковая.
  12. Спасибо. Наверное, тогда быстрее (т.к. NVIC часть ядра) и правильнее будет запретить прерывание через NVIC->ICER...
  13. Мне кажется какой-то барьер тут всё-таки нужен. Команда обращения к памяти strh R2,[R3,#0x0C] может выполняться несколько тактов и, думаю, где-то между этими тактами может проскочить прерывание, которое запрещаем
  14. А зачем? Я прерывание временно отключаю (на десяток команд) и оно мне потом нужно будет. Да и бесполезно флаги проверять до запрета прерывания - они ж после проверки могут появиться
  15. А DSB не хватит? На асме я пытаюсь оптимизировать некоторые функции :)