Jump to content

snn_krs

Members
  • Posts

    512
  • Joined

  • Last visited

Everything posted by snn_krs

  1. Для изменения содержимого порта компилятор может использовать три команды 1. Чтение порта во временный регистр 2. Изменение значения во временном регистре 3. Сохранение временного регистра в порт. Если между этими командами произойдет прерывание, то временный регистр может измениться в прерывании и соответственно изменится порт. Команды cli() и sei() в прерывании не нужны, они прерывание запрещается и разрешается аппаратно. При приеме по 485 используют таймаут. Если нет приема дольше нескольких мСек ( обычо длительность передачи 3.5 символов ), значит прием закончен, или ошибка. Если этого не сделать обмен может зависнуть.
  2. Попробуйте при изменении порта D запрещать прерывания cli(); PORTD... PORTD... sei();
  3. Программа уже считана, значит защиты нет. Пусть биты защиты будут называться фьюзе битами. Однако в АВР это не одно и тоже. Вопрос был о том, что кроме флэш памяти надо считать для переноса программы.
  4. Это АРМ контроллер. У них нет фьюзов. Должно быть достаточно того, что считали. Если есть внешняя ЕЕПРОМ, тогда ее надо считать.
  5. Попробуйте так подключить. 0.4 Ом это не обмотка а центробежный выключатель, обведен кружком.
  6. Ответ о том, что эта плата не будет работать с данным двигателем.
  7. Плата предназначена для управления бесщеточным двигателем (BLDC). У вас двигатель щеточный. С этой платой работать не будет.
  8. 5-я ножка индикатора и вывод подстроечника регулятора контрастности не соедины с землей.
  9. Посмотрите эти. Джозеф Ю. Ядро Cortex M3 компании ARM. Полное руководство Мартин. Инсайдерское руководство по STM32
  10. В даташите все описано. У ATMEGA8515 один регистр для таймера 0 и 1 и Bit 7 – TOIE1: Timer/Counter1, Overflow Interrupt Enable
  11. Какое прерывание вы так разрешаете? Надо TIMSK |= (1<<7);
  12. Это два независимых канала со своими линиями и буферами приема и передачи. Данные передаются и принимаются одновременно.
  13. Пользуюсь в таких случаях Zelio Soft 2 от Шнайдер, есть аналоги от Сименс и Овен. Программа бесплатная. Есть реле, счетчики, генераторы и т.п. При симуляции можно на выход ставить лампочки, двигатель, вентилятор и т.п.
  14. Сначала надо разрешать ( EN ) DMA затем переферийное устройство. If the user enables the used peripheral before the corresponding DMA stream, a “FEIF” (FIFO Error Interrupt Flag) may be set due to the fact the DMA is not ready to provide the first required data to the peripheral (in case of memory-to-peripheral transfer).
  15. Эта защита скорее всего для того, чтобы случайно не стереть программу. В вашем случае защиты нет.
  16. Запретить запись можно, хотя эту защиту можно и снять.
  17. Программатору нужен только файл *.hex. Попробуйте найти, или скомпилируйте любой проект для вашего МК ( например ааа ). Найдите куда помещается файл - ааа.hex. Удалите его, а вместо него подставьте bootloader.hex - предварительно переименовав его в ааа.hex. Попробуйте запрограммировать.
  18. Правильно. Если частота 100 МГц, то GPIOD->ODR = 0xF000 в цикле выполняется каждые приблизительно 50 нС. Это меньше 0.5 мкС. Когда в регистр ODR записывается любое значение ( даже то что было ) устанавливается счетчик задержки, в данном случае 0.5 мкС и выход установится только через это время. Если до достижения этого времени вы снова записываете в ODR любое значение счетчик опять устанавливается в 0.5 мкС и выход не изменяется. Поставьте GPIOD->OSPEEDR = 0xFF000000; и светодиоды должны зажечься.
  19. Задержка между GPIOD->ODR while(1) { // Задержка > 0.5 мкС GPIOD->ODR = 0xF000; // Задержка > 0.5 мкС GPIOD->ODR = 0x0000; } Если хотите увидеть мигания, задержка больше 0.1сек
  20. Выходные порты синхронные, состояние меняется с частотой заданной в регистре OSPEEDR. Тоесть между командами изменения состояния порта должно быть больше 0.5 мкС для OSPEEDR = 0 ( 2 MHz )/
  21. Все чипы имеют уникальный ID - Unique device ID register (96 bits). Программист может просто использовать флэш как EEPROM. При запуске программы проверить размер флэш памяти. Можно проверить общий объем памяти, количество занятой и отвести для записи последний блок. Но может просто писать данные в блок по жестко заданному адресу, например 1 М.
  22. Если прошивка привязана к ID чипа, то она не будет работать даже если вы купите stm32f407vgt6. Даже если привязки нет, вероятнрсть, что она заработает не 100%.
  23. В ST-LINK задаете сколько надо считать ( вся память ) и читаете.
  24. На выход схемы предложенной Dr. West ставите конденсатор. Заряжается он быстро, а разряжается медленно (подбор емкости и нагрузочного резистора). Если разряд "-" выключается, то через несколько периодов динамической индикации конденсатор разрядится. Это как регенерация динамической памяти.
  25. Компилятор обнуляет только глобальные переменные. Объявите ААА локально. int main(void) { unsigned char AAA; ... Это не правильно, но в этом случае должно сработать.
×
×
  • Create New...