Запуск программы на uno r3

Тема в разделе "Arduino & Shields", создана пользователем Maklaid, 26 фев 2017.

  1. Maklaid

    Maklaid Нуб

    Здравствуйте, начал осваивать ардуинку и столкнулся с проблемой. Что при подаче питания на плату, она сначала выполняет, что-то вроде тестирования(подает питание на порты), и только потом выполняет непосредственно заданную программу. Как можно избавиться от данного действия?
     
  2. rkit

    rkit Гуру

    Как порты будут работать без питания? Они всегда запитаны. Вы что-то путаете.
     
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Значит так написано в коде, который вы не привели.
     
  4. AlexU

    AlexU Гуру

    Что бы избавиться от "данного действия", нужно очень хорошо разбираться в микроконтроллерах семейства AVR и иметь в наличие программатор, которым будете программировать свою Arduino.
    Суть действа в том, что при старте (перезагрузке) сначала начинает работать загрузчик, который ждёт около 2 сек (не помню точно -- надо смотреть исходники загрузчика, если интересно смотрите сами) и, если в течении этого времени не было принято ни одного байта по USART, то срабатывает watchdog, который перегружает контроллер, но уже запуская основную (пользовательскую) программу.
    Для чего? -- Для возможности перепрошивать микроконтроллер по последовательному порту (USART). Любые данные принятые из последовательного порта (переданные с компьютера на микрконтроллер) в течении первых 2-х секунд загрузчик микроконтроллера рассматривает как команды для перепрошивки "пользовательской" части памяти.
    Как избавиться? -- Взять программатор и с его помощью:
    во-первых изменить фьюз 'BOOTRST' -- он отвечает за запуск загрузчика при перезагрузке микроконтроллера;
    во-вторых зашить свою прошивку (впрочем все последующие прошивки придётся зашивать с помощью программатора, т.к. загрузчик перестанет функционировать).
     
    Maklaid и arkadyf нравится это.
  5. Maklaid

    Maklaid Нуб

    Спасибо