Короче элементарно когда запускаешь шаговик и через порт смотришь какую либо динамику, то на 9600 скорость на порядок ниже. При повышении скорости и щаговик ускоряется. А когда убираю вывод данных на плоттер, то щаговик работает на нормальной скорости. Это факт.

Комментарии: 40

  1. Th0r

    этот факт действителен для твоего кода

    • Dinar

      Пфффф

  2. Th0r

    гляди https://i.imgur.com/Sz2fRZc.png

  3. Byte

    Это кривой код.

    • Dinar

      Нет либ. Есть только степ =1 и степ = 0. И сериал принт Что может быть кривым в 5 строчках??

      • Byte

        Да даже в пяти асмовских командах кривизна быть может ;) Юарт на прерываниях работает?

        • Anonim

          парни, я извиняюсь за врыв в вашу дискуссию, но как новичок хочу спросить - здесь только такие вопросы и обсуждаются?

          • Th0r

            разные обсуждаются

        • Dinar

          Короче 5 строчек. Степ = 1; Делей (1); Степ = 0; Делей (1); Сериал.принтлн(степ); И при разных значениях сериал.бегин(скорость) меняется скорость шаговика. Это как и почему??

          • Byte

            Сериал реализован там через задницу, как минимум.

            • Dinar

              Это где именно? В ide? Или в атмеге в целом?

              • Byte

                В ардуино. В атмеге всё нормально :)

                • Dinar

                  То есть в нормальной среде если код написать, и залить через программатор, то будет четко работать?

                  • Wings

                    Прежде всего хотел 1060-3

                    • Vasil

                      Не особо потанцевально (4+ гига надо), но это уже не тематика чата.

                      • Wings

                        Для игры в доту, кс и пубг мне не особо и нужно столько)

                  • Th0r

                    такой код не будет, у тебя слишком много данных отправляется по сериалу

                  • Anonim

                    дело не в среде и не в программаторе, а в реализации алгоритмов

                  • Byte

                    Если нормально написать код, а не так, как сейчас ;)

                    • Dinar

                      Что тут не есть нормально? Я гуглил, инфы не нашел

                      • Th0r

                        гляди, ты на каждый шаг отправляешь минимум байт данных (а то и два с переводом строки) байт данных на 9600 сколько времени занимает? вот и считай, у тебя Serial.write сперва выполняет асинхронно, пока буфер пустой, через несколько итерация буфер заполняется и он начинает блочить выполнение кода, пока в буфере не освободится место выше же я скинул описание

                        • Dinar

                          И что с этим делать??

                          • Th0r

                            не отправлять там много данных отправлять например каждые 1000 шагов, или мигать лампочкой или вообще ничего не отправлять

                            • Dinar

                              То есть отправлять только по изменению, а не постоянно??

                              • Byte

                                Именно.

                                • Dinar

                                  Вот наконец то сказали. А то рофлите на до мной, а чё делать не говорите, чёртовы партизаны

                                  • Th0r

                                    ты сам как партизан - ничего не сказал, а мы должны догадаться

                                    • Dinar

                                      Я же все сказал что знал

                                      • Th0r

                                        нет, ты говорил "невозможно", "ардуина медленная на 20мгц" и тд.

                                        • Dinar

                                          Я ещё много чего сказал помимо этого ) Спасибо в итоге за инфу. То есть так будет правильно Степ = 1; Делей (1); Степ = 0; Делей = 1; Если (переменная != Степ) { Сериал.принтлн(переменная); Переменная = степ; } ?

                                          • Th0r

                                            непонятно чо за переменная и зачем ее сравнивать со степом, если до этого степ = 0

      • Anonim

        Обработчики прерываний как используются?

      • Anonim

        ch340 Скорость передачи больше 115200 Отсутствие кварца Чтоб передавалось корректно между двумя мк - нужен протокол с проверкой на ошибки

      • Anonim

        В трехфазном драйвере ШД, что я раньше сюда скидывал фото, стоит DSP TMS320, в нем 12 каналов ШИМ, и куча таймеров. Предполагаю, что DSP там не просто так стоит.

      • Anonim

        Есть ещё момент, мега не выполняет все инструкции за 1 такт.

        • Linxuil

          А умножение и деление там реализовано уже на ассемблере?

          • Anonim

            Хз, нет исходников.

          • Th0r

            умножение есть, деления нет

        • Dinar

          Ну это я понимаю. То есть нужно исключить ежетактный цикличный опрос, и использовать прерывания. И все эти сравнения миллис и микрос каждый такт тоже жрет ресурс

Не нашли ответ?

Вам также может быть интересно