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

Zhuk72

Members
  • Постов

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

  • Посещение

Весь контент Zhuk72

  1. Если это ваш первый проект с STM32 или с МК вообще, вы бы с чего-то попроще начали бы что ли. Я, например, независимо оттипа МК всегда начинаю с того, что мигаю светодиодом каждые 0.5с. По завершению этого этапа появляется уверенность в том, что Тактовый генератор запустился и работает правильно. Порты конфигурируются правильно. Таймер настроен правильно. Прерывания по этому таймеру (1 мс) настроены правильно и работают. Все остальное настраивается после этой подготовительно-ознакомительной процедуры. Когда на том же МК делаю еще что-то, у меня на руках уже имеется готовый костяк, на который навешивается все остальное.
  2. Это пример использования диапазона в switch-case. Значения диапазона и действия на них выбирайте по надобности.
  3. "Первые шаги в программировании микроконтроллеров" уж точно не с USB начинаются. Что за плата у вас?
  4. У 877 нет, но у вопрос касается 877А, у которого компаратор есть. Программа начинается с строк Start1 clrf PortA ; очистить порт А movlw .7 ; Выключить компараторы и активировать порты входа-выхода movwf ADCON0 ; Обращение идет к порту, а следом к ADCON0. Они оба в одном банке, а поскольку программа только стартанула, следовательно в нулевом.
  5. .7 надо записывать не в ADCON0, а в ADCON1. И это не отключение компараторов, а отключение выводов порта от АЦП. Кроме того .7 нужно также прописать и в CMCON. Это и будет отключение компараторов. А что вы делаете с кнопками мне совершенно непонятно.
  6. Похоже на то. Либо какие-то древние инструкции для начинающих. Для начала исправьте начало файла, не изобретайте велосипед. В меню МПЛаба (в моей версии Х 5.00 это в Production) имеется пункт Configuration bits. Он автоматически генерирует заголовок, надо только мышкой выставить нужные биты. ; Assembly source line config statements #include "p16f877a.inc" ; CONFIG ; __config 0xFFFA __CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_ON & _LVP_ON & _CPD_OFF & _WRT_OFF & _CP_OFF ;=============================================================================================== ; Определение названия и положения регистров общего назачения. ;=============================================================================================== SecH_1 equ 20h ; старший разряд счетчика SecL_1 equ 21h ; младший разряд счетчика but equ 22h Строка с #include ведет на файл, в котором уже прописаны адреса всех регистров. А конфигурационные биты надо писать именно в таком развернутом виде, чтобы всем было понятно, что там вкл, а что выкл. Кроме того нет необходимости вручную переключать банки. Достаточно перед обращением к регистру написать banksel TRISA (или любой другой регистр или переменная). В процессе компиляции переключение банка компилятор добавит сам. Так вы точно не ошибетесь с банками и избавите себя от лишних поисков. И потом, зачем вам на начальном этапе понадобился WDT? Добейтесь нормальной работы без него, а потом можете и с ним поиграться (если это так важно).
  7. Насколько я помню (читал поверхностно), система прерываний МК, который выше советовал my504, отличается от стандартной для 8-битных ПИКов.
  8. Вы бы лучше выложили сюда свой простейший код, хотя бы с миганием, который не работал или работал нестабильно. У вас там на платах и в программаторе STM32 стоят или китайские варианты типа GD32, CS32 или как там они у них называются?
  9. Надо не с Гуглом договариваться, а даташит читать. Тем более, что на этот МК он есть и на русском.
  10. Бит защиты так назван, потому что защищает прошивку от считывания. А стирание и перепрошивка не возбраняются.
  11. PICи не нужно восстанавливать, потому что они от неправильной прошивки не блокируются.
  12. Если есть настоящий СОМ-порт, спаяйте JDM. Ну либо попробуйте 12F508, она 3-м пиккитом поддерживается. Что касается функциональной идентичности чипов C и F - по ДШ вроде идентичны, но 100% гарантии не дам. Просто традиционно С - однократно программируемые, а у тех перезаписываемая флеш-память. По распиновке между ними разницы нет, прошейте и проверьте насколько правильно он работает.
  13. Марк, спуститесь на землю, здесь тоже люди живут. Еще раз повторяю: у меня в данное время нет времени и условий заниматься этим хобби даже 20 минут без того, чтоб меня не оторвали на посторонние дела. До этого ни разу я с подобной ошибкой не сталкивался ни на одной чипе PIC, STC, C8051 или STM32. Мне не приходило в голову, что могут выпустить компилятор без проверки хотя бы базовой периферии. Что касается пары минут... Ну не за пару, но за 20-30 минут (учитывая, что я впервые использовал МСС) я вышел на источник проблемы. Этой платой я начал заниматься еще в марте прошлого года, тогда и вылезла эта проблема. С того времени и до мая этого года было не до МК вообще. После таких перерывов трудно включаться обратно и поневоле возникают сомнения в правильности своих действий. Так что не судите всех по себе. Уже жалею, что вообще поделился этим наблюдением.
  14. У меня нет времени постоянно этим заниматься, это не работа, а хобби, которому не каждый день уделяется. Неделя - это срок с момента обнаружения проблемы и до того, как удалось взяться за неё. В промежутке я только урывками читал ДШ в поисках проблемы у себя в конфиге, не верилось, что могли допустить такую грубую ошибку в адресации такой популярной периферии.
  15. У меня не вопрос, а подсказка для тех, кто напорется на ту же проблему. Поиск может быть выведет сюда. МК - PIC16F18446 на подарочной демо-плате DM164144. Неделю мучился (в свободное время), не мог получить "эхо" от УАРТа, при этом передача работала. Наконец со злости сделал новый тестовый проект, но теперь уже посредством конфигуратора (МСС). "Эхо" появилось. Начал копаться в МСС конфиге - все примерно как у меня. Одно отличие - вручную я писал на ХС8 версии 1.45, а МСС делал на версии 2.05. Оказалось, что в версии 1.45 адрес RX1DTPPS в заголовке указан 0x1EC9, а в версии 2.05 правильный - 0x1ECB. Это не считая того, что в ДШ он вообще называется RX1PPS. Вот теперь задумался, а не из-за кривого ли заголовка у меня не завелся 32 kHz кварц на этой плате?!
  16. Изучая дизассемблированный хекс, хотите правильно научиться писать программу на С++? Шутник вы, батенька, однако.
  17. Несколько лет назад я ковырял утюг Philips GC4851 с функцией auto power off, не включался утюг. Там в рукоятке как раз-таки и был залитый компаундом маленький модуль с 12F508 и датчиком вибрации (или как он там называется, шариковый такой?). Помнится, я даже прошивку с него считал и разбирал. Но потом необходимость в ремонте отпала. Может этот "прибор" и имелся в виду @ART_ME ?
  18. PIC16F1789 например. В нем 3 ОУ, входы которого могут быть выведены на внешние выводы или на внутренние ЦАПы. Выходы только на выводы МК.
  19. Пробовали check communication из меню программы? Что отвечает? Попробуйте сделать запуск программы с правами администратора.
  20. Можно было и не отвечать, я выше уже признал ошибку. Или просто для "поболтать" по вашему же выражению?
  21. Расшифровку аббревиатуры я знаю, потому и спрашиваю. Передача для одного является приёмом для другого и наоборот. Update! Да, верно, их надо параллелить. Почему-то решил, что в ведомом режиме МК меняется функционал пина. Мануал помог.
×
×
  • Создать...