0 / 0 / 0
Регистрация: 14.07.2021
Сообщений: 13
1

С чего вообще лучше начать путь в программировании микроконтроллеров

29.07.2021, 20:50. Показов 7996. Ответов 54

Всем привет!
Появился такой вопрос "С чего же лучше начать изучение мк?".ЯП - Си. Но именно по аппаратной части, что лучше подходит новичку, чтобы серьезно этим заниматься?
Хочу изучать, чтобы связать с этим будущую профессию.
Буду рад почитать все ваши ответы, заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2021, 20:50
Ответы с готовыми решениями:

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

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

С чего начать в web-программировании?
Хочу реализовать для начала простейшую задачу, например, вход на сайт, авторизация там, ну и...

С чего начать новенькому в Web программировании ?
Я новичок в сфере Web - программирования. Так сказать, сыч). Поступил в колледж, на специальность...

54
3542 / 2100 / 390
Регистрация: 09.09.2017
Сообщений: 8,643
02.08.2021, 08:41 41
В эмуляторах разве что логику отлаживать можно. С периферией у них все плохо, с аналоговыми цепями все плохо, с расчетом потребления все плохо, с наводками все плохо, с взаимодействием с пользователем или с компьютером тоже все плохо.
То есть если разрабатывать числодробилку вроде цифрового фильтра или операционной системы, еще куда ни шло. Но для активного взаимодействия с внешним миром, для чего контроллеры вообще-то и предназначены, совсем печально.
0
570 / 336 / 64
Регистрация: 21.09.2008
Сообщений: 1,152
02.08.2021, 11:49 42
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Лично я возражаю против Ардуины потому что она провоцирует характерный подход "тяп-ляп и сойдет" включая как использование кривых готовых библиотек, так и готовых модулей. Причем готовые модули само по себе далеко не всегда кривые, но тот же ардуино-подход провоцирует не делать нормальную плату, а лепить все на беспаечной макетке (в лучшем случае - спаивать проводками) и заливать термосоплями, в результате чего полученное "изделие" выглядит, да и работает, как известная субстанция.
Уж от кого, но от Вас не ожидал прочесть сие. Где в моём сообщении подобное упоминается? Поясню свою мысль: интересующийся микроконтроллерами покупает готовую разведённую плату с компонентами за весьма доступную цену при использовании продукции Китая. Ему не надо собирать её из россыпи компонентов, разъёмов, не надо мудохаться с разводкой и травлением, сверлением отверстий, мучиться с пайкой. Он получает готовый продукт и сразу приступает к изучению AVR/STM. Нравится продукт - продолжает. Не нравится - ну и пусть лежит в столе или можно подарить кому-либо. Среду Arduino (IDE, библиотеки) можно не использовать, писать код на Си/С++ в любом текстовом редакторе, изучая возможности "камня" по даташиту от производителя и закрепляя навыки.
Читайте внимательнее, целостно и не придумывайте за других тайный смысл там, где его нет.
0
3542 / 2100 / 390
Регистрация: 09.09.2017
Сообщений: 8,643
02.08.2021, 12:57 43
Вам бы самому последовать своему совету и читать внимательнее. Я написал: "Ардуина провоцирует характерный подход... Конечно, при должном опыте можно с этим бороться".
Я вот только что из интереса сравнил первые пять ссылок из выдачи "AVR помигать светодиодом" и "Arduino помигать светодиодом". В первых были примеры нормального кода (кроме четвертой ссылки - там оказался бейсик), во вторых - digitalWrite и тому подобная чушь.
Иначе говоря, при использовании Ардуины приходится постоянно напоминать себе, что это не Ардуина, а ATmega328.
Цитата Сообщение от sharpey Посмотреть сообщение
Поясню свою мысль: интересующийся микроконтроллерами покупает готовую разведённую плату с компонентами...
...и начинает лепить ее куда ни попадя, поскольку делать платы так и не научился. А зачем, все же работает.
1
2925 / 1437 / 182
Регистрация: 28.10.2011
Сообщений: 5,298
Записей в блоге: 6
02.08.2021, 13:05 44
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В первых были примеры нормального кода (кроме четвертой ссылки - там оказался бейсик)
И чем бейсик ненормальный? Единственное что код не очень оптимизированный компилятором и в сравнению с GCC оптимизация находится между O0 и O1.
0
3542 / 2100 / 390
Регистрация: 09.09.2017
Сообщений: 8,643
02.08.2021, 13:09 45
Нет, ну для мазохистов может и нормальный, откуда же мне знать.
0
locm
02.08.2021, 13:26
  #46

Не по теме:

Лично я считаю мазохистами тех что юзает линь в качестве десктопа, вместо IDE использует makefile и отлаживает через USART при наличии в МК JTAG или SWD, но я свое мнение держу при себе потому что каждый выбирает то что ему лучше. С бейсиком также.

0
COKPOWEHEU
02.08.2021, 13:32
  #47

Не по теме:

Просто эти "некоторые" предпочитают простые и понятные инструменты, не пытающиеся быть умнее владельца и которые могут быть под владельца заточены.
Гораздо более интересен вопрос зачем поступать иначе.

0
1 / 1 / 0
Регистрация: 26.05.2021
Сообщений: 77
08.08.2021, 06:42 48
Всем привет. просматривая код на различные МК я вижу там разные записи. На AVR PORTx = | 0x01; STM RCC->AHB1; ESP IRAM_ATTR. Вот от куда брать инфу что нужно писать именно так? Или нужно перелистать кучу чужого кода чтоб понять..
0
Почетный модератор
11280 / 4249 / 433
Регистрация: 12.06.2008
Сообщений: 12,245
08.08.2021, 13:28 49
Цитата Сообщение от Ramzess1488 Посмотреть сообщение
Вот от куда брать инфу что нужно писать именно так?
Из даташита на МК вы можете узнать какие регистры и блоки используются для конкретной задачи. А из документации к библиотеке можно узнать, какие готовые функции для этого существуют.
0
Модератор
Эксперт по электронике
8698 / 6496 / 879
Регистрация: 14.02.2011
Сообщений: 22,726
08.08.2021, 14:59 50
Цитата Сообщение от Ramzess1488 Посмотреть сообщение
Или нужно перелистать кучу чужого кода чтоб понять..
Изучить язык, в частности Си
0
1 / 1 / 0
Регистрация: 26.05.2021
Сообщений: 77
08.08.2021, 21:21 51
Что вы подразумеваете под си? вот допустим я хочу написать обработчик прерываний на авр. тогда я пишу ISR(TIM0_vect), для стм32 нужно писать EXTI0_IRQHandler, это ведь не относится к языку как мне кажется.
Humanoid, писал что нужно библиотеку просматривать, как я понял для STM CMSIS курить.
0
2925 / 1437 / 182
Регистрация: 28.10.2011
Сообщений: 5,298
Записей в блоге: 6
08.08.2021, 23:12 52
Цитата Сообщение от Ramzess1488 Посмотреть сообщение
для стм32 нужно писать EXTI0_IRQHandler, это ведь не относится к языку как мне кажется.
Более того имя функции прерывания может быть любым и задается в массиве векторов прерываний стартап файла.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
  .section .isr_vector,"a",%progbits
  .type g_pfnVectors, %object
  .size g_pfnVectors, .-g_pfnVectors
 
 
g_pfnVectors:
 
  .word _estack
  .word Reset_Handler
  .word NMI_Handler
  .word HardFault_Handler
  .word MemManage_Handler
  .word BusFault_Handler
  .word UsageFault_Handler
  .word 0
  .word 0
  .word 0
  .word 0
  .word SVC_Handler
  .word DebugMon_Handler
  .word 0
  .word PendSV_Handler
  .word SysTick_Handler
  .word WWDG_IRQHandler
  .word PVD_IRQHandler
  .word TAMPER_IRQHandler
  .word RTC_IRQHandler
  .word FLASH_IRQHandler
  .word RCC_IRQHandler
  .word EXTI0_IRQHandler
  .word EXTI1_IRQHandler
  .word EXTI2_IRQHandler
  .word EXTI3_IRQHandler
  .word EXTI4_IRQHandler
  .word DMA1_Channel1_IRQHandler
  .word DMA1_Channel2_IRQHandler
  .word DMA1_Channel3_IRQHandler
  .word DMA1_Channel4_IRQHandler
  .word DMA1_Channel5_IRQHandler
  .word DMA1_Channel6_IRQHandler
  .word DMA1_Channel7_IRQHandler
  .word ADC1_2_IRQHandler
  .word USB_HP_CAN1_TX_IRQHandler
  .word USB_LP_CAN1_RX0_IRQHandler
  .word CAN1_RX1_IRQHandler
  .word CAN1_SCE_IRQHandler
  .word EXTI9_5_IRQHandler
  .word TIM1_BRK_IRQHandler
  .word TIM1_UP_IRQHandler
  .word TIM1_TRG_COM_IRQHandler
  .word TIM1_CC_IRQHandler
  .word TIM2_IRQHandler
  .word TIM3_IRQHandler
  .word TIM4_IRQHandler
  .word I2C1_EV_IRQHandler
  .word I2C1_ER_IRQHandler
  .word I2C2_EV_IRQHandler
  .word I2C2_ER_IRQHandler
  .word SPI1_IRQHandler
  .word SPI2_IRQHandler
  .word USART1_IRQHandler
  .word USART2_IRQHandler
  .word USART3_IRQHandler
  .word EXTI15_10_IRQHandler
  .word RTC_Alarm_IRQHandler
  .word USBWakeUp_IRQHandler
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word 0
  .word BootRAM          /* @0x108. This is for boot in RAM mode for
                            STM32F10x Medium Density devices. */
0
Native x86
Эксперт Hardware
5172 / 3019 / 874
Регистрация: 13.02.2013
Сообщений: 9,635
09.08.2021, 00:29 53
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В эмуляторах разве что логику отлаживать можно. С периферией у них все плохо, с аналоговыми цепями все плохо, с расчетом потребления все плохо, с наводками все плохо, с взаимодействием с пользователем или с компьютером тоже все плохо.
Так не нужно пихать в симулятор всю схему со жменей операционников/шунтов/реактивностей/итд. Отлаживать надо поблочно, только отдельные функциональные узлы, с учетом особенностей симуляции. Итоговую прошивку потом собрать из отдельных кусков. Есть в устройстве датчик тока -- разводим в симуляторе только его и добиваемся правильной работы. Потом остальное, по чуть-чуть. Точность симуляции аналоговых цепей достаточна для отладки того же датчика тока на шунте и ОУ с суб-милливольтными уровнями напряжений на входе.

Я не говорю, что симуляция всемогуща и покрывает весь цикл разработки. Но процентов 80-90 точно. Да, операционник с однополярным питанием может вдруг выдать отрицательное напряжение на выходе, это нужно знать и понимать, при каких условиях симулятор может дурить. Ну и экономия времени опять же, ибо заменить в процессе отладки номинал резистора в симуляторе и в реальном прототипе -- две большие разницы.
0
2925 / 1437 / 182
Регистрация: 28.10.2011
Сообщений: 5,298
Записей в блоге: 6
09.08.2021, 00:37 54
Цитата Сообщение от quwy Посмотреть сообщение
Отлаживать надо поблочно, только отдельные функциональные узлы, с учетом особенностей симуляции.
Тогда лучше отлаживать в железе таким же образом.
0
3542 / 2100 / 390
Регистрация: 09.09.2017
Сообщений: 8,643
09.08.2021, 10:09 55
Цитата Сообщение от quwy Посмотреть сообщение
Отлаживать надо поблочно, только отдельные функциональные узлы, с учетом особенностей симуляции реального железа.
Так правильнее. В симуляторе одни баги, в железе другие, а в документации третьи. Поэтому и взаимодействие с железом надо отлаживать на железе. Ну кроме совсем простых случаев.
Цитата Сообщение от quwy Посмотреть сообщение
Точность симуляции аналоговых цепей достаточна для отладки того же датчика тока на шунте и ОУ с суб-милливольтными уровнями напряжений на входе.
До тех пор, пока на него не начнут влиять цифровые сигналы или паразитные емкости. Или те же ограничения симулятора.
Цитата Сообщение от quwy Посмотреть сообщение
Я не говорю, что симуляция всемогуща и покрывает весь цикл разработки. Но процентов 80-90 точно.
Процентов 80-90 от тех 10%, где она вообще применима.
---
Последнее, с чем я возился, было сложное составное USB-устройство CDC+CDC+HID+Audio. Причем оба CDC выведены на один UART и переключаются по хитрому алгоритму. Что именно тут можно симулировать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2021, 10:09
Помогаю со студенческими работами здесь

С чего начать заниматься в олимпиадном программировании
Всем привет, решил заняться олимпиданым программированием, читал, что лучше всего для этого...

С чего вообще стоит начать?
Кому не лень,подскажите с чего вообще стоит начать.

Как лучше делить приложение при программировании в WF? А то кодовая каша получается. Вообще читать невозможно
Как лучше делить приложение при программировании в WF? А то кодовая каша получается. Вообще читать...

InternetRadio - с чего вообще начать, где что искать?
Уважаемые господа! Подскажите плиз... хочу попробовать сделать свой радио проект в интернете... и...

Смысл задачи не понимаю, с чего вообще начать. Объясните, пожалуйста
Макс, Евгений и Даниил придумали новую игру. У каждого из них есть игральный кубик (на гранях...

Какую можно выбрать CMS или с чего начать вообще?
Добрый вечер. Появилась "скромная" идея для реализации небольшого проекта (некоммерч., задание:...


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

Или воспользуйтесь поиском по форуму:
55
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru