Martian, на Алике от 16 килорублей плюс доставка 1,5 тыс. Нерационально на мой взгляд. За эти деньги можно купить новый современный смартфон и засунуть его в Кешу)) Да и Кеша тогда не особо нужен
Товарисчи, а просветите меня плиз, насчёт такого вопроса: начинал изучение программирования с Ардуины, соответственно писал код в Arduino IDE. Прошло время, полностью отучился от библиотек, языка Wiring, и перешел на чистый C. Однако привычка писать в Arduino IDE так и осталась, хотя сейчас она используется как блокнот с встроенным компилятором. Вопрос такой, трудно ли будет с нее перелезть на ту же AVR studio. При написании программ использую исключительно стандартные функции C а так же прямое обращение к регистрам МК, минуя ардуиновские функции типа диджиталврайтов, ридов и делеев. Или забить и пользоваться тем, к чему привык? Камни использую голые, без загрузчиков и всякой мути.
_________________ Не важно чем все начнется. Важно чем кончится!
Приглашаем 3 декабря 2024 на вебинар, посвященный силовым модулям ведущего китайского производителя SUNCO - одного из мировых лидеров по производству дискретных полупроводниковых компонентов. На вебинаре вы узнаете о новинках, включая модули 17 класса в корпусе E3, и контроле качества на всех этапах производства. Вы также узнаете о новейших продуктах – IGBT-, SiC-, диодных и тиристорных модулях, погрузитесь в современные топологии, сравните характеристики IGBT-чипов разных поколений.
Свой, тебе удобный ввод/вывод пишется отдельно, в хедере. И оформляется в виде define или online. Тогда исходный текст будет один и тот же, что в Ардуино, что в Студии. И просто переносится на другие платформы, тот же ПИК хотя бы, без какого либо изменения в исходнике.
Всплески перенапряжения являются серьезной угрозой надежности работы радиоэлектронных устройств. Причины их появления различны, это могут быть коммутационные переходные процессы в системе электропитания устройств, разряды молний, электростатические разряды. Для создания эффективной и современной системы защиты от ЭСР компания SUNCO разработала надежные и качественные супрессоры, представляющие собой TVS- и ESD-диоды, а также сборки на их основе. Компоненты SUNCO не только не уступают, но часто превосходят по характеристикам аналогичную продукцию других брендов.
Свой, тебе удобный ввод/вывод пишется отдельно, в хедере. И оформляется в виде define или online. Тогда исходный текст будет один и тот же, что в Ардуино, что в Студии. И просто переносится на другие платформы, тот же ПИК хотя бы, без какого либо изменения в исходнике.
Ну это в принципе понятно. Тогда вопрос развернутый более: Вот сейчас я пишу программу для 84-й тини. Можно ли с таким кодом заехать в ту же Студио, естественно прописав необходимые моменты в хедере и убрав ардуиновские Setup и Loop? Понятно, что Setup в Avr Studio вообще не будет, это по сути просто то, что однократно выполнится при запуске контроллера, а дальше основной циклт ипа While(1){} Который в ардуино иде заменен на функцию Loop(). Пример кода ниже, здесь чарлиплексинг 12-ти светодиодов на Port A и опрос 1 кнопки на Port B. Все крутится на прерывании Таймера 1, цикл Loop() не используется, это пока только заготовка, хотя код в железе работает отлично и без нареканий: Спойлер
Setup не убирает, но Loop вполне можно убрать. Да и смысл переводить в АВР студио? Тот же GCC... (Это ежли не ту студио, что после проглатывания мелкощипом пошла, использовать). Плюс необходимость полностью выполнить предварительную инициализацию аппаратных средств МК (что в ардуиноIDE скрыто - выполняется "по умолчанию", а при работе с авр студио надо самому ручками вписывать).
Кстати... никто не запрещает в рамках Ардуино IDE обходить "встроенные функции" референса, работая под "чистым Си" для конкретного семейства МК (в случае Viper_Snake это АВР). Расширенный функционал для той же АВР студии смотрим тут: https://alexgyver.ru/lessons/
Последний раз редактировалось BOB51 Чт сен 19, 2024 17:09:15, всего редактировалось 2 раз(а).
Самое интересное, что Arduino IDE тоже "понимает" етот код, скомпилирует его, генерирует .hex и может записать его в МК, с управлением одной кнопкой. Только в EEPROM не записывает (легко) и не управляет фюзов МК.
Ниже как пример: blink на ATtiny13A с Timer0, который также компилируется и в Arduino IDE:
Код:
#include <avr/io.h> #include <avr/interrupt.h>
ISR(TIM0_OVF_vect) { PORTB ^= _BV(LED_PIN); // toggle LED pin }
int main(void) { DDRB = 0b00000001; // set LED pin as OUTPUT PORTB = 0b00000000; // set all pins to LOW TCCR0B |= _BV(CS02) | _BV(CS00); // set prescaler to 1024 (CLK = 1200000Hz / 1024 / 256 = 4Hz, 0.25s) TIMSK0 |= _BV(TOIE0); // enable Timer Overflow interrupt sei();
while (1); }
Последний раз редактировалось veso74 Чт сен 19, 2024 18:36:37, всего редактировалось 1 раз.
Если убрать из кода функцию Loop , компилятор начинает жаловаться, что она неопределена.
Код:
int main(void) { pinMode(LED_BUILTIN, OUTPUT);
while (1) { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } }
Viper_Snake, замените необходимыми командами. Если не понятно чем, посмотрите в папках Arduino IDE.
Последний раз редактировалось veso74 Чт сен 19, 2024 18:25:52, всего редактировалось 2 раз(а).
veso74, Некоторое подобие управления фьюзами находится во вкладке "Инструменты" там можно для тини 84 например, BOD выставить, настроить тактирование. Устанавливаются эти фьюзы криво с помощью кнопки "записать загрузчик". Я предпочитаю свой код в hex компилировать, а потом с помощью Avrdudess его зашивать. У него удобный очень калькулятор фьюзов приаттачен, даже баран разберется без привлечения новых ворот.
_________________ Не важно чем все начнется. Важно чем кончится!
Да, некоторое. А было бы полезно все фюзы. Ничего. Программатор всегда включен и вместе с его и AVRDUDESS (любимой, пользуюсь для AVR). --- Да, это для AVR. А в Arduino IDE пишу и за STM8/32, CH32 и за Teensy и ESP ... (Для второго и третего MK больше не использую Arduino IDE и, считаю, это "правильный путь" ).
А зачем нужен пустой цикл While в конце Main-a? Процессор не может просто ничего не делать после выполнения Main? И можно ли считать мой код полностью отвязанным от Wiring и ардуиновской платформы?
Добавлено after 10 minutes 5 seconds: CH32 тоже взял пощупать, вместе с программаторами. Его рекомендуется вместе с MoonRiver Studio употреблять вроде. Пока нет особо времени на вникание, это для меня абсолютно новые ворота.
_________________ Не важно чем все начнется. Важно чем кончится!
main - это же функция. Просто самая главная, первая. Иными словами, точка входа в пользовательскую программу. Допустим, мы завершили эту функцию. Тогда, получается, мы завершили пользовательскую программу.
Если не сделать явную остановку МК в конце главного цикла (или не "закольцевать" программу) МК будет продолжать выборку команд из неиспользуемой части ПЗУ. По умолчанию это код 0xFF "чистая ячейка". И так до переполнения счётчика РС. А затем снова с адреса 0x0000.
Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
Добавлено: Чт окт 24, 2024 13:47:31
Встал на лапы
Зарегистрирован: Вс сен 28, 2014 07:54:21 Сообщений: 133
Рейтинг сообщения:0
Пару месяцев ничего не прошивал. Сегодня прошивается только один раз, для повтора требуется перезагрузка компа. Тестю все на "блинке", на разных Нанках. Пробую и OLD Boot и настройку и просто 328. Базовая IDE 1.8, но сегодня ставил и последние. Примерно тот же печальный эффект. Кабели тоже менял, хотя часто из их качества так и было. Только у меня так? Что-то с обновлением Винды / драйверов видимо за эти пару месяцев.
П.С. Вопрос решился. 2 партии нанок и обе были с багами. Надо сразу тестить и китайцам выставлять счета, а не ждать 2 месяца(((
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения