Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/33: Рейтинг темы: голосов - 33, средняя оценка - 4.73
Заблокирован

Программирование микроконтроллеров

23.04.2016, 07:10. Показов 7178. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно- ли в lazarus программировать микроконтроллеры на паскале?
Заранее благодарен за ответ.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2016, 07:10
Ответы с готовыми решениями:

Программирование микроконтроллеров
где почитать?

Программирование микроконтроллеров
Всем привет, возникла проблема с кодом. Препод злюка не хочет помогать с этим. Суть проблемы. Пишу код на микроконтроллер Atmega 32, в...

Программирование микроконтроллеров
Работаю в ImageCraft IDE for AVR. Хочу написать программу, которая бы считала функцию, не понимаю в чем ошибка. Y=X1X3X4 V X1X2X3 V...

55
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
25.04.2016, 18:53
Студворк — интернет-сервис помощи студентам
Fulcrum_013, каким портом - перед глазами схема, когда - как сам решу.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
25.04.2016, 19:01
Цитата Сообщение от _liv_ Посмотреть сообщение
Вы не поверите, в свою бытность я имел дело с перфолентами
Перфоленты издали видел. Перфораторы для перфокарт еще тоже видел, правда не в работе. Как раз как то эмулятор для телетайпа на котором перфоратор был встроенный делал. Функция перфоратора уже правда была неактуальна поэтому без нее.
Цитата Сообщение от _liv_ Посмотреть сообщение
В сучае необходимости, у меня есть своя "целочисленная" вещественная арифметика.
Fixed Point далеко не всегда достаточно. Хотя для токарки с ЧПУ выше крыши (я правда имел дело с теми на которых уже магнитная лента встроена была, а под перфоленту на соседнем участке были). Но есть очень нехороший недостаток у всех этих токарок с ЧПУ болгарского производства с совдеповским контроллером - из за того что с плавающей арифметикой не дружат не умеют вычислять начальную и конечную точку окружности для круговой интерполяции. И эллиптической нет, а могли бы, алгоритм Брезенхема и для эллипсов применим, только вот если вычисление начальной и конечной точки окружности токарь в столбик еще может осилить, а с инженерным калькулятором вообще не проблема, то вычисления точек эллиптической дуги уже не для человеческого вычислителя.

Добавлено через 2 минуты
Цитата Сообщение от _liv_ Посмотреть сообщение
каким портом - перед глазами схема, когда - как сам решу
Расположение листов на линии прокатки в момент времени n, температура каждого прохода и усилие прокатки листа номер m тоже всегда перед глазами?
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
25.04.2016, 19:10
Так программа ж считает. Зачем туда влазить? Раз настроить и все.
И вообще, в моих нынешних задачах больших вычислений практически нет.
Немного перелопать байты, сформировать информацию для вывода, передача-прием, подергать портами, все просто
Для вычислительных задач все вычисления я бы делал на компьютере, с передачей информации на исполнительное устройство.

Добавлено через 2 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Расположение листов на линии прокатки в момент времени n, температура каждого прохода и усилие прокатки листа номер m тоже всегда перед глазами?
Fulcrum_013, это должно быть согласовано в протоколе обмена, какие порты подключены к каким датчиках, а порты в схеме, которая перед глазами
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
25.04.2016, 19:17
Цитата Сообщение от _liv_ Посмотреть сообщение
это должно быть согласовано в протоколе обмена, какие порты подключены к каким датчиках, а порты в схеме, которая перед глазами
Это считают и компы с гораздо более меньшей вычислительной мощностью чем ATMega
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
25.04.2016, 19:25
Fulcrum_013, Все зависит, от того, что надо делать, и сколько есть на это времени.
Задачи бывают разные
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
25.04.2016, 20:00
Цитата Сообщение от _liv_ Посмотреть сообщение
Для вычислительных задач все вычисления я бы делал на компьютере, с передачей информации на исполнительное устройство
Цитата Сообщение от _liv_ Посмотреть сообщение
это должно быть согласовано в протоколе обмена, какие порты подключены к каким датчиках, а порты в схеме, которая перед глазами
В таком случае быстрее проектировать протокол так, чтобы программа была написана 1 раз, а схема каким портом дернуть по какой команде была бы данными, тогда все эти дела можно делать просто чертя схему.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
25.04.2016, 20:14
Fulcrum_013, разумеется, схема и программа должны быть согласованы на этапе проектирования, что и как выводить, что и как получать.
На одной плате может быть реализовано множество устройств с разными программами.
Все последующие программы используют то распределение ресурсов, которое заложено.
Правда, иногда приходится добавлять дополнительные ключи, еще что-нибудь... На все случаи жизни не заложишься... И датчики бывают разные. Есть стандартные, с которыми мы работаем всегда, иногда появляются весьма "хитрые". Но ничего, приспосабливаемся... Нет, так недолго и новую плату развести
0
397 / 197 / 49
Регистрация: 11.07.2013
Сообщений: 1,219
26.04.2016, 00:56
Господа, хоть и не про Лазарус, но беседа получилась интересной.
Как сторонний наблюдатель поддерживаю доводы скорее Fulcrum_013, чем _liv_, хотя хочу отдать должное уважение пследнему за его преданность асму. Уважаемый _liv_, просто хочется спросить, а не мазохист вы случайно (в хорошем смысле этого слова и прошу не обижаться). Сам начинал в 80-х по журналу "Радио" с Кр580, сначала писал в тетраде на ассемблере, затем переводил вручную в машинные коды, набирал их на самодельном программаторе и т.д. Можно было бы и по сей день так писать, однако, являясь представителем ленивого рода "Homo sapiens", захотелось получать результат с меньшими затратами труда, поэтому отказался от тетради, а asm-коды стал набирать на "Радио-86 МК". И, собственно, так далее - зачем отказываться от прогресса...
К слову так, один мой товарищ (физик-теоретик, д.т.н.) использовал для своих расчётов Турбо-Паскаль. Чёрный экран, командная строка. Долго я "доставал" его и всё-таки "достал" - "пересел" он на Delphi, а через пол года он на нём начал такие чудеса творить...(к стати, в Лазарус я влез "с его подачи"). А второй товарищ - электронщик, для него кроме PIC-ов и ассемблера ничего не существует. А если что-то не получается, то делает такую "умную рожу", что и не возразишь ему (например, АЦП работает нестабильно, ложно срабатывают уставки. Предлагаю: сделай программный фильтр. "Да что ты. На это ещё неделя уйдёт, лучше пускай они линию нормально проложут...") На Си эта задача решается минут за 10 (с учётом времени включения ноутбука и подключения программатора), а на ассемблере у него - неделя. И мужик-то не дурак. Предлагал ему изучить Си, а он свои доводы: код у него компактный, быстрый. А, мне так кажется, что изучил человек когда-то добросовестно свой ассемблер и теперь пытается сам обмануть себя - "надо будет - изучу", "нет задач - не надо учить". Не поддерживаю. Лично я, будучи в начале 2000 г безработным и без всякой дальнейшей перспективы, в возрасте далеко за 40 не постеснялся пойти со школьниками на курсы изучать Си (Изучить его в совершенстве не смог до сих пор и вряд ли хватит на это всей жизни, но стал восстребованным специалистом в саоей области. Считаю, что поступил правильно).
Беспорно, код на ассемблере более компактный и быстрый, но писать его на несколько порядкав сложнее, чем на том же Си. Он не "прощает" ошибок, требует очень высокой квалификации. Если я через год с трудом вспоминаю, что написал на Си и на это уходит дня два-три, то недели две буду вспоминать, что когда-то писал на ассемблере.
И ещё очень важный момента не в пользу ассемблера: нет, допустим, в продаже контроллера данного типа или вообще он снят с производства. Что делать? На ассемблере придётся всё начинать с нуля, а на Си только подправить некоторые функции. Но это ещё пол беды. А представьте, что вы работаете в команде и вдруг заболели, уволились или ещё хуже - вас задавил трамвай. Ваша фирма, полагаю, будет вам очень благодарна... Когда-то мой начальник говорил крылатуя фразу: "Нет незаменимых людей. Просто сейчас их неким заменить".
Дорогой _liv_, если вам так легко даётся писать на ассемблере, то, поверьте, поработав с Си вы поймёте, на сколько вы себя обкрадывали всё это время и сколько вы смогли бы сделать за это время полезного...
Вывод: используйте те программные инструменты, которыми пользуется большинство (во всяком случае, будет к кому обратиться за помощью).
Что касается вопроса Hretgir. Если раньше вы не занимались электроникой и программированием МК, а сроки поджимают, то подключите к своей работе кого-нибудь из знакомых электронщиков, который "знает в этом толк", т.к. не факт, что хорошо написанная программа заработает в "железке", собранной "кривыми руками". Или возьмите за основу микрокомпьютер типа "Raspberry Pi" (есть и другие аналоги), во всяком случае, "железо" собрано качественно, а ПО сами напишете на Лазарусе.

Добавлено через 1 час 20 минут
Хочу ещё дополнить.
Что такое ассемблер, Си, Лазарус и др. Это - инструменты для достижения конкретной цели. Интересная былабы беседа между двумя землекопами: один копал сочковой лопатой, а другой - штыковой. Представляеете этот диспут... Или еще лучше: один сантехник отчерпывает их колодца г.... ведром, а другой отсасывает шлангом (продолжать?). Главное ведь результат, а не вы - копатель, сантехник или разработчик и, тем более, чем вы там пользовались (ведром или шлангом). Вас же не интересует при покупке в магазине того же хлеба, на какой почве и кем был ворощен урожай, а печь, в которой его пекли: была электрическая или газовая.... Максимум вашего интереса - это вкус и, может быть, вес булки хлеба.
Вот интересно, между пекарями хлеба тоже развивается подобная дискуссия: какая печь лучше (на дровах - ассемблер, на газе - Си иди электро - Лазарус).
В прошлый век счётов, логарифмических линеек и калькуляторов как-то было даже стыдно сказать, что я считал на калькуляторе, а не в уме... А сейчас умение пользоваться инструментом даже возводится в какой-то особый ранг - Я ПРОГРАММИСТ. Да это просто обязанность каждого современного инженера. А выбор инструмента (пока нет по этому поводу закона) личное дело каждого.
1
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
26.04.2016, 11:06
shyub, думаете, я не работал на С? Работал и довольно долго и успешно. Но вернулся на асм. По той простой причине, что на нем быстрее и качественнее. Вот такой парадокс. Я не мазохист, а прагматик, выбираю тот инструмент, который лучше подходит на данный момент, "для достижения конкретной цели"
Перенос кода на другой контроллер AVR делается на раз. Мы используем разнообразные AVR-ки. Это вообще не вопрос. AVR-ки тем и хороши, что они отличаются только набором периферии на борту, да адресами управляющих регистров. Первое учитывается при выборе типа контролера. Второе в мнемонике регистров, т.е. в include-ах
Отличие еще может быть в доступе по in/out или lds/sts, так и это учтено, у меня есть макро, которое автоматом подставляет нужную команду. Все! Поменял include, и код готов!
Заменить кем-то... Это, конечно, пока вопрос открытый Я так далеко не заглядываю вперед. Там видно будет. Но на мой век еще хватит.
Зачем мне идти той дорогой, которой идут все? Спрашивать кого-то? Я и сам могу все сделать... У меня основные справочники - datasheet-ы. Взять полностью готовый С-шный код для какого-то девайса? Так переносится на асм за пару-тройку дней. Уже делал не раз. Естественно, с оптимизацией.

Да, ассемблер предъявляет особые требования к программисту. Далеко не каждому это дано, даже тем, кто на нем работает... Но это как раз по мне. Я по другому и не хочу, предпочитаю все контролировать самому. И мыслю категориями регистр, бит и т.п. Могу тут же выбросить какой-то кусок, тут же переписать его заново! При этом очень быстро и практически без ошибок... (Может это и мазохизм с Вашей точки зрения )

Каждому свое... На данный момент, мой основной инструмент - ассемблер. Не исключаю, что в будущем он поменяется, если будут другие задачи Для компа я пишу на С++, хотя могу и на асме, но здесь это нецелесообразно

PS У меня даже на компе нет антивируса, точнее стоят некоторые другие средства, обеспечивающие минимальную степень защиты. Вычищаю, в случае необходимости, "ручками". Тоже предпочитаю сам все контролировать
Люблю, знаете ли, покопаться в реестре...
0
Эксперт .NET
 Аватар для Rius
13685 / 7865 / 1702
Регистрация: 25.05.2015
Сообщений: 23,885
Записей в блоге: 14
26.04.2016, 12:47
_liv_, Вы не выбираете, а используте асм всегда.
У нас был такой же специалист, повернутый на асме. После его ухода его проект переделали с нуля на язык C в сроки, на порядок меньшие, чем затратил он.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
26.04.2016, 13:07
Rius, это именно мой выбор, могу и на С, но не хочу.
И я свой выбор никому не навязую... А просто изложил свой взгляд
1
Заблокирован
26.04.2016, 20:18  [ТС]
Вот как я подошёл к проблеме, по поводу линка на программирование кинематики. Тема открыта мной на другом форуме, потому что там есть раздел философии, но парадигму придумал я сам, на второе сообщение в теме без ответов. Тут я не наблюдал раздела философии, поэтому не думаю, что в рамках данного форума как-то реально обсуждать тему.

Парадигма начинается с того, что:
Действия бывают связанные по условию и по задаче.
Вот так замыкается парадигма:
Действия связанные по задаче, являются друг для друга условиями её достижения.
0
397 / 197 / 49
Регистрация: 11.07.2013
Сообщений: 1,219
27.04.2016, 00:22
Уважаемый _liv_, я вас услышал. Как говорится в одной умной книге: умеющий уши - да услышит, имеющий глаза - да увидет.
Hretgir, а что вы ещё ожидали? Своё мнение по вашей проблеме я вам сказал дважды. Навязывать своё мнение вам никто не будет. Будут проблемы, обращайтесь.
Один есть хороший анегдот по этому поводу: Наводнение, тонет верующий еврей. Подплывает к нему лодка - садись еврей, спасём. Нет, меня бог спасёт. Тонет дальше. Подплывает плот и т.д. Утонул еврей и попдает к богу: Бог, я тебя всю жизнь любил, молился тебе, а ты меня не спас. Бог отвечает: а кто тебе лодку присылал, кто плот присылал и т.д.
Не будтье таким евреем (ничего не имею к еврейской национальности, просто такой анегдот). Вы, Hretgir, сам решайте, на какой базе делать проект, а когда возникнут проблемы обращайтесь за помощью (если это не ассемблер - шучу).
0
Заблокирован
27.04.2016, 07:49  [ТС]
Да я конечно обращусь, сейчас ещё рано просто. А сделать просто хочется все не разово, а основательно, для этого и прорабатывается основа и своя парадигма.
0
1 / 1 / 0
Регистрация: 16.10.2020
Сообщений: 37
21.02.2024, 20:29
liv, а какой ассемблер используете?
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 940
Записей в блоге: 17
06.05.2024, 07:46
Цитата Сообщение от liv Посмотреть сообщение
Что касается ARM-ов, то писал и для них. Инициализацию оставляю на С, вся работа исключительно на асме.
если это арм-ядра cortex-m0, m3, m4 - то приходите в ArmAsmEdit и пишите для них на асме :-)

в остальном об асме здесь все таки офтоп... да и не пишет большинство здесь на асме вот и судят о сложности написания программ на асме по статьям в интернете, например про смену микроконтроллера с переписыванием всего кода на асме :-) на деле ничего такого нет, но вы все равно ничего здесь не докажете :-) потому что "миллионы мух не могут ошибаться" и "здесь так заведено" :-)


Кликните здесь для просмотра всего текста

старое видео.. это проект писали изучая асм...
https://youtu.be/2yUzWS3AjBs

в монтаже видео я к сожалению не силен :-) каюсь...


Добавлено через 20 минут
Цитата Сообщение от liv Посмотреть сообщение
Перенос кода на другой контроллер AVR делается на раз. Мы используем разнообразные AVR-ки. Это вообще не вопрос. AVR-ки тем и хороши, что они отличаются только набором периферии на борту, да адресами управляющих регистров. Первое учитывается при выборе типа контролера. Второе в мнемонике регистров, т.е. в include-ах
примерно тоже самое и на stm32.. все это реализуется минимальными затратами сил и времени...
тут скорее вопрос в наличии библиотеки кода которая очень обширна на Си и практически отсутствует на ассемблере..
так что первый раз - действительно очень и очень тяжко писать задачу на асме... но с каждым написанным кодом библиотека пополняется и в итоге получается практически тоже самое что и на си - реализовывать надо только логику программы, а для железа есть библиотеки которые реализуют ту или функциональность железа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2024, 07:46

Программирование микроконтроллеров
Собственно хочу узнать как и где. В нете не смог найти хорошо структурированной информации. Прошу поделиться опытом и подсказать с чего...

Визуальное программирование микроконтроллеров
Создаю визуальную среду для построения алгоритмов работы будущих устройств. Данная среда использует язык программирования приближенный к...

программирование микроконтроллеров pic
подскажите полному нубу, с чего начать... какой софт поставить, как спаять программатор под пик, какие нужны детльки для первой схемы, что...

Втягивание в программирование микроконтроллеров
Здравствуйте, уважаемые. Опять обострилось желание попробовать свои силы в практической разработке с применением микроконтроллеров. ...

С чего начать? программирование микроконтроллеров
Здрасьте. Хочу начать заниматься программированием микроконтроллеров. Хотел бы купить все необходимое для начала, но проблема в том что я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru