Изучать чего-то новое надо по реальной потребности.
Если предполагается использовать - учим, если нет - максимум материал для изучения готовим.
Из ЯВУ пока что в МК ассемблер да Си базовые, С++ только в ардуиноIDE частично используется.
Другое дело - если цель написание программ на ПК предстоит осваивать - там уж выбор весьма широк.
Однако учитывая современную перспективу... Сначала скачать за сохранить несколько копий компилятора, имеющего хорошее описание да бесплатного, да чтоб оффлайн работал... А ужшшш потом и заняться изучением можно.
Решил немножко поиграться с "враждебным элементом" - PCF8583...
Микросхемка старинная, но от того не менее "туманная" - из группы объединенной апнотой еще от Phillips
более современная версия этой апноты:
Случилась какая то хрень,и обычное окно ответа на "химике" скукожилось до одной строчки
и пропала возможность отвечать.
Может можно вручную подправить что то,а то я не понимаю в РНР ничего.
Чем размеры окна определяются.
Тыкал-тыкал,ничего не получается. Вот код этого элемента.
Спойлер<div class="ipsType_normal ipsType_richText ipsType_break" data-ipseditor="" data-ipseditor-controller="https://forum.xumuk.ru/index.php?app=core&module=system&controller=editor" data-ipseditor-minimized="" data-ipseditor-toolbars="{"desktop":[{"name":"row1","items":["Bold","Italic","Underline","Strike","Subscript","Superscript","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","BulletedList","NumberedList","-","RemoveFormat","JustifyLeft","JustifyCenter","JustifyRight","-","TextColor","FontSize","-","ipsPreview","Redo","Undo","-","custom-8de1c8b046fc6fc5813dcc3f4d6aefe9","custom-566179d31a479688ca06a1b6bf5fa5ca","custom-b24c8fea4005f73876e90212130018c0","custom-e50a417e26f1d22d26fe7ccc835ac459","custom-3d8320a906793de60c1a12f9be1672dd","custom-055797ba5bd3da2642bd1b357dcdf649","custom-b01a789ff17201ab02936fbded0a62e2","custom-c8049f09485482e8d8c0301b80a73f9f","custom-d551875f5c5453958cc8cd63999de462","custom-b0f1aef475bcea37c1683111d9334a1b","custom-b5c7d7921d468689f6d5d5ab00e86d7b","custom-1d711b253a2647e30782ed3da7f1572d","custom-57643d86a73671725070f98c850c68b7","custom-1c7f18735b134f0f78a681915cb24a28","custom-2730bc53cb4e2c5a15460a19f1445a94","custom-25cf406fdf85f4de30389c1aae413fd3","custom-b0b494f0274e3ae0e61b364f20c99145","custom-99d06646dcdc4295ece44bc63cc6db94","custom-7c29d2e528cde9a0f6504e6f1cffabfc","custom-707f7711a04ca126106f5554b43f13fb","custom-a0eda65bfeaa5b8583a56c444edcd811","custom-85fa59f6cf2e9dfa98c8a2ac859cd4c1","custom-8ad826987ca16872f32e0d7a332cee2f"]},"\/"],"tablet":[{"name":"row1","items":["Bold","Italic","Underline","Subscript","Strike","Superscript","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","BulletedList","NumberedList","-","RemoveFormat","ipsPreview","Redo","Undo"]},"\/"],"phone":[{"name":"row1","items":["Bold","Italic","Underline","Strike","Subscript","Superscript","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","NumberedList","BulletedList","-","RemoveFormat","ipsPreview","Undo","Redo"]},"\/"]}" data-ipseditor-*самореклама*="custom-566179d31a479688ca06a1b6bf5fa5ca,custom-b24c8fea4005f73876e90212130018c0,custom-e50a417e26f1d22d26fe7ccc835ac459,custom-3d8320a906793de60c1a12f9be1672dd,custom-055797ba5bd3da2642bd1b357dcdf649,custom-b01a789ff17201ab02936fbded0a62e2,custom-b0f1aef475bcea37c1683111d9334a1b,custom-d551875f5c5453958cc8cd63999de462,custom-c8049f09485482e8d8c0301b80a73f9f,custom-57643d86a73671725070f98c850c68b7,custom-b5c7d7921d468689f6d5d5ab00e86d7b,custom-1c7f18735b134f0f78a681915cb24a28,custom-2730bc53cb4e2c5a15460a19f1445a94,custom-25cf406fdf85f4de30389c1aae413fd3,custom-b0b494f0274e3ae0e61b364f20c99145,custom-99d06646dcdc4295ece44bc63cc6db94,custom-7c29d2e528cde9a0f6504e6f1cffabfc,custom-a0eda65bfeaa5b8583a56c444edcd811,custom-1d711b253a2647e30782ed3da7f1572d,custom-707f7711a04ca126106f5554b43f13fb,custom-8ad826987ca16872f32e0d7a332cee2f,custom-85fa59f6cf2e9dfa98c8a2ac859cd4c1" data-ipseditor-postkey="02a25e84a20386497c5f217a457a9a7c" data-ipseditor-autosavekey="reply-forums/forums-302944" data-ipseditor-skin="ips" data-ipseditor-name="topic_comment_302944" data-ipseditor-pastebehaviour="rich" data-ipseditor-*самореклама*="ipsautolink,ipsautosave,ipsctrlenter,ipscode,ipscontextmenu,ipsemoticon,ipsimage,ipslink,ipsmentions,ipspage,ipspaste,ipsquote,ipsspoiler,ipsautogrow,ipssource,removeformat,ipspreview" data-ipseditor-contentclass="IPS\forums\Topic" data-ipseditor-contentid="302944">
<div data-role="editorComposer">
<noscript>
<textarea name="topic_comment_302944_noscript" rows="15"></textarea>
</noscript>
<div class="ipsHide norewrite" data-role="mainEditorArea">
<textarea name="topic_comment_302944" data-role="contentEditor" class="ipsHide" tabindex="1"></textarea>
</div>
<div class="ipsComposeArea_dummy ipsJS_show" tabindex="1"><i class="fa fa-comment-o"></i> Ответить в теме...</div>
//Главная функция
int main(void)
{
DDRD = 0xFF;//Конфигурирования порта на выход
PORTD = 0x00;//Отключаем подтягивающие резисторы порта
while(1)//вечный цикл
{
left();
.....//тут ставим столько раз функцию,
.....//чтобы ротор шагового двигателя
.....//провернулся на достаточный угол
left();
right();
.....//тут ставим столько раз функцию,
.....//чтобы ротор шагового двигателя
.....//провернулся на достаточный угол
right();
}
}
Раде эксперимента, советую попробовать поставить следующий код в самом конце программы:
m=m+1; //Добавить единицу к переменной
if(m==350)//Если переменная достигла значения 350
{m=1;}//установить переменную равную "1"
right();
///////////////////////////////////////////////
m=m+1; //Добавить единицу к переменной
if(m==350)//Если переменная достигла значения 350
{m=1;}//установить переменную равную "1"
///////////////////////////////////////////////
}
}
А вот программа(чужая) для ШД.
Работает в симуляторе,но в конце
там такие строчки
.....//тут ставим столько раз функцию,
.....//чтобы ротор шагового двигателя
.....//провернулся на достаточный угол
Тут это где ?
Сколько не сую в разные места всякую ерунду,
ничего не получается. Только ошибки появляются.
while(1)//вечный цикл
{
left();
//тут ставим столько раз функцию,
left(); //чтобы ротор шагового двигателя
//провернулся на достаточный угол
left();
right();
//тут ставим столько раз функцию,
right(); //чтобы ротор шагового двигателя
//провернулся на достаточный угол
right();
}
[uquote="главный колбасист",url="/forum/viewtopic.php?p=4297745#p4297745"]https://skillbox-ru.turbopages.org/promo/media/skillbox/pochemu-luchshe-uchit-slojnyi-c-chem-prostye-pythonjava-62e92f8c22e16c1cfbc74097
Вот такая реклама свалилась мне. Чё правда что ли?
Насчет предложений на hh.[/uquote]
Хм... Я как-то задал одному специалисту по Си++: как компьютер в реальности сравнивает числа? Вразумительного ответа я не получил. Так что Си++ до "железа" как до луны. Не для начинающих он.
Соответственно имеющимся в составе ядра микропроцессора ассемблерным командам и возможностям АЛУ.
Это на самом низшем уровне, а далее уже алгоритмы обработки, применяемые в соответствующем компиляторе /ЯВУ для работ с числами более разрядности АЛУ микропроцессора (но на основе вышеперечисленного).
Для Си/С++ это содержание соответствующих библиотек.
Ничего там сверхъестественного.
[uquote="BOB51",url="/forum/viewtopic.php?p=4324946#p4324946"]Для Си/С++ это содержание соответствующих библиотек.[/uquote]
А у него есть библиотеки? Или встроенные функции? Не считая main().)
[uquote="BOB51",url="/forum/viewtopic.php?p=4324946#p4324946"]Соответственно имеющимся в составе ядра микропроцессора ассемблерным командам и возможностям АЛУ.
Это на самом низшем уровне, а далее уже алгоритмы обработки, применяемые в соответствующем компиляторе /ЯВУ для работ с числами более разрядности АЛУ микропроцессора (но на основе вышеперечисленного).
Для Си/С++ это содержание соответствующих библиотек.
Ничего там сверхъестественного. [/uquote]А конкретнее можно?
[uquote="OKF",url="/forum/viewtopic.php?p=4325119#p4325119"][uquote="BOB51",url="/forum/viewtopic.php?p=4324946#p4324946"]Для Си/С++ это содержание соответствующих библиотек.[/uquote]
А у него есть библиотеки? Или встроенные функции? Не считая main().)[/uquote]
Базовый минимум GCC находится в соответствующем каталоге IDE.
При стандартной инсталляции это специальный скрытый каталог на диске С (где-то в теме уже рассматривалось - но вспоминать надо - я практически на всех компах портабле версию поставил).
В случае же с портабле для АВРок примерно такое расположение
Чего там еще накопать можно - то на любителя закопаться в самих компиляторах.
Но то уже не для пользователя (даже "продвинутого")
Касательно С++ и адуринки - то больше или самодельные библиотеки или "сторонних авторов" - как пример те же "основные"
(самому такие создать довольно сложно из-за требований быстродействия или доступа к аппаратным ресурсам)
Adafruit_NeoPixel
OneWire
SoftwareSerial
и прочие в папке
[uquote="BOB51",url="/forum/viewtopic.php?p=4325220#p4325220"][uquote="OKF",url="/forum/viewtopic.php?p=4325119#p4325119"][uquote="BOB51",url="/forum/viewtopic.php?p=4324946#p4324946"]Для Си/С++ это содержание соответствующих библиотек.[/uquote]
А у него есть библиотеки? Или встроенные функции? Не считая main().)[/uquote]
Базовый минимум GCC находится в соответствующем каталоге IDE.[/uquote]
Сам язык функций не содержит. Только сторонние, какие найдёшь.)
Именно "чистый" GCC кроме стандартных библиотек (как и для простого Сишного GCC, применяемого в АВР студии) ничего не добавляет, а вот уже IDE в своем "референсе" много чего имеет - начиная с инициализации выводов согласно применяемой "платформе" и прочего из раздела Functions референса.
Жаль сегодня для ардуиноIDE версий 1.8.19 и 2.0.2 этот раздел только в режиме "он лайн" доступен...
Единственно сохранился в "офф лайн" старый вариант для 1.8.9 (явно "урезанный" по сравнению с он-лайновой версией)...
Так вполне вероятно разное понимание...
У меня такое представление...
минимальные "стандартные" - это составляющая GCC к примеру те же
avr/interrupt.h
avr/pgmspase.h
и подобные...
В составе IDE "референса" раздел Functions содержит функции, обращение к которым требует наличия соответствующих библиотек их обеспечения уже где-то в самой IDE
Это уже "встроенный минимум" и с использованием С++
Далее идут библиотеки группы
Official Arduino Libraries
SPI - for communicating with devices using the Serial Peripheral Interface (SPI) Bus.
Wire - Two Wire Interface (TWI/I2C) for sending and receiving data over a net of devices or sensors.
SoftwareSerial - for serial communication on any digital pins.
встроенные в IDE "по умолчанию"
и за ними уже "сторонних авторов" - эти из тырнета скачиваем при желании
наиболее необходимые из них
OneWire, Adafruit_NeoPixel, LiquidCrystal
Попалась в тырнете весьма интересная книжа по Си для адуринки...
НО... на чистом "спик инглиш"...
Сгрузил в сундук - сегодня она уже там доступна https://sunduk.radiokot.ru/view/?id=1670505201
Подход аналогичен тому, что и у меня, но есть и весьма интересные дополнения по работе с многофайловиками - совершенно оригинально и нигде ранее в литературе по ардуинкам не попадавшееся (но заложено в самой IDE на видном месте!).
Чуток дополнений по препроцессору и структурам.
Сам пока "пережевываю" - особо по работе с IDE в режиме допонительных файлов - там надо еще покрутить тесты ибо чуток мозг сносит по сравнению со стандартным (несколько пар *.h + *.cpp и единственный *.ino) вариантом...
По книже ежли создать средствами IDE (а не с помощью внешних редакторов) дополнительный файл *.cpp (но без всякого связующего с главным файлом проекта *.h заголовочника!), то после компиляции получаются в проекте несколько *.ino без явно прописанных в папке скотча связей - где-то они таки есть, но то работа IDE... Разберусь отдельно результат выложу ибо весьма удобно...
Конечно удобно для домохозяек. Ни о чем не думай - только файлы в одну папку тули!)
Иной раз отдаю людЯм проект с пустым ino, или с одним только описанием в ino. Фигеют.)
Чем методом тыка действовать, лучше бы поинтересовался как сборка скетча в Ардуино происходит.( https://arduino.github.io/arduino-cli/0 ... d-process/ например.