Перевести то можно. И тут есть несколько вариантов. Но, для того что бы было понятно самому, лучше сформулировать что именно ты хочешь от этого фрагмента получить. Это будет лучше для тебя самого, потому что ты будешь понимать как это работает. Код вставляй с тегом Code.
Чего тут непонятного - ТС нужна запись в GPIO не через магическую функцию Ардуино, а напрямую. И прямое же чтение/установка отдельных битов битовыми операциями Си.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Конечно понятно. Только сделать это можно по разному - по красивому и тяп-ляп.) Можно же тупо втулить функции Ардуино и определения. Разве это будет нормально? Не думаю.
Чего тут непонятного - ТС нужна запись в GPIO не через магическую функцию Ардуино, а напрямую. И прямое же чтение/установка отдельных битов битовыми операциями Си.
Здравствуйте! Можете направить как нибудь примером?
См. iteration -> чат-бот дал код? Мне тоже дал код с iteration. Кажется рабочий код, попробуйте. (В лучшем случае может потребоваться небольшая коррекция).
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
У него же куча Ардуино функций: digitalWrite например, которая включает в себя трансляцию пинов в порты, bit, bitRead и т.п. Всё это для Ардуино кухни, но для людей не способствуют пониманию.
Спасибо! //---------- я вот только не понял эту строку... iteration = (iteration + 1) % 5;
в моём случае iteration++ и как только она достигает 5ти - сбрасывается в 0 if(iteration>4)iteration=0; или это какое то мне не известное выражение Си ?
я вот только не понял эту строку... iteration = (iteration + 1) % 5;
% это получение остатка от деления.
А в целом функция loop это такой способ организации цикла. На мой взгляд извратный и неочевидный (особенно для новичков), но кто я такой, чтобы спорить с ИИ.
Работает это так:
1. Переменная iteration объявлена как локальная статическая. При первом вызове функции iteration присваивается 0, но при последующих вызовах сохраняется старое значение этой переменной; 2. Вызывается функция switchAnode с значением из iteration; 3. К переменной iteration прибавляется 1, а потом ей же присвается остаток от деления на 5. На первой итерации это будет 1%5=1, потом 2%5=2 и т.д. Вот калькулятор, поэкспериментируйте - https://skysmart.ru/articles/calculator ... s-ostatkom 4. Задержка 2 миллисекунды. Почему так мало - хрен его знает, ИИ виднее. 5. Переход к п.1 - значение iteration уже 1. .... И так далее до iteration = 5. Тогда остаток от деления 5 на 5 будет 0, iteration обнуляется, и всё начинается по новой.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
я вот только не понял эту строку... iteration = (iteration + 1) % 5;
% это получение остатка от деления.
А в целом функция loop это такой способ организации цикла. На мой взгляд извратный и неочевидный (особенно для новичков), но кто я такой, чтобы спорить с ИИ.
Работает это так:
1. Переменная iteration объявлена как локальная статическая. При первом вызове функции iteration присваивается 0, но при последующих вызовах сохраняется старое значение этой переменной; 2. Вызывается функция switchAnode с значением из iteration; 3. К переменной iteration прибавляется 1, а потом ей же присвается остаток от деления на 5. На первой итерации это будет 1%5=1, потом 2%5=2 и т.д. Вот калькулятор, поэкспериментируйте - https://skysmart.ru/articles/calculator ... s-ostatkom 4. Задержка 2 миллисекунды. Почему так мало - хрен его знает, ИИ виднее. 5. Переход к п.1 - значение iteration уже 1. .... И так далее до iteration = 5. Тогда остаток от деления 5 на 5 будет 0, iteration обнуляется, и всё начинается по новой.
не плохо! и без никаких ifов одна строка заменяет две: iteration++; if (iteration > 4)iteration = 0;
Интересно узнать как компилятор оптимизирует эти варианты. Хотя бы по размеру кода. Возможно на выходе будет одинаковый. Остаток от деления насколько затратная функция?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения