Easyelectronics.ru

Электроника для всех
Текущее время: 23 сен 2020, 14:36

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 14:05 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Решил облегчить себе жизнь и научится писать программы для МК с либами. В качестве примера взял эту статью http://we.easyelectronics.ru/STM8/ispol ... v-iar.html

Пробежался по тексту глазами, и понял, что ничего не понимаю. Вместо привычного кода тут стихи какие-то...

Вот например пример ниже. Как это вообще можно прочитать? Тут глаза сломать как раз плюнуть. Неужели к такому можно привыкнуть???


Цитата:
Включим таймер 2 и настроим на частоту 2Гц, попутно разрешив прерывания от него и включим:

Код:
  // Timer 2, F=2Hz
  // ARR=Fsck/Prescale/Fuser
  // ARR=16 000 000 / 128 / 2 = 62500
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);
  TIM2_TimeBaseInit(TIM2_Prescaler_128,TIM2_CounterMode_Up,62500);
  // Interrupt
  TIM2_ITConfig(TIM2_IT_Update,ENABLE);
  // Start TIM2
  TIM2_Cmd(ENABLE);


Строчка
Код:
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);

повергла меня в шок. Такое действительно можно заучить и писать не спотыкаясь на каждой запятой? А говорили, что с библиотеками писать значительно проще, чем через регистры...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 15:14 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4334
Откуда: г. Липецк
Если указываете подпрограммы из подключаемых библиотек, потрудитесь и указать название библиотек. Судя по всему это stm8l10x_timХ.h, и помнить названия этих функций не надо, вбивать их вручную не надо. Подключили хейдер библиотеки, щелкнули по нему, он откроется. Почитали, нашли нужное, скопипастили в код с нужными параметрами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 15:44 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Это кусок кода из статьи по ссылке.

anakost писал(а):
Подключили хейдер библиотеки, щелкнули по нему, он откроется. Почитали, нашли нужное, скопипастили в код с нужными параметрами.

А наименования функций и параметров для библиотек как-то регламентируются? Есть какие-то стандарты? Или каждый раз придется искать нужное в портянках кода, угадывая замысел автора? Я вижу, что есть некие описания параметров передаваемых в функции библиотеки. Но, описания довольно запутанные, имхо. Не хватает подробностей. Без чего изучение возможностей библиотеки становится сравнимым по сложности с программированием через регистры. И, как понять, где в библиотеке нужные функции, в которые передаются параметры из программы. Там их много всяких, какие копипастить?

Да, а как они к проекту подключаются, библиотеки? И, где их брать? Скажем, нужна мне I2C либа под STM8L15x в IAR. Где добыть такую библиотеку? Скачанные с сайта STM либы STM8L15x-16x-05x-AL31-L_StdPeriph_Lib подойдут?


Последний раз редактировалось Microlightavr 26 май 2020, 15:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 15:50 
Старожил

Зарегистрирован: 28 сен 2018, 00:25
Сообщения: 291
если писать не в блокноте, то сильно помогает автодополнение, а нормальные иде еще и список параметров подсказывают..
А если еще и нормальный HAL уровень написать, то эти все закорючки нужны вообще полтора раза, а основная логика оперирует включить__светодиод, опросить_ацп и прочее.
Да и "решил научиться ... ничего не понимаю" - в начале нормальное явление. Регистры очевидно тоже не с первого раза запомнил, правда ведь? ;)

Цитата:
Не хватает подробностей.

посмотрел код, что он делает - какие еще подробности нужны?
Цитата:
Там их много всяких, какие копипастить?

те которые нужны
Цитата:
Да, а как они к проекту подключаются, библиотеки?

как обычно - #include "zzz.h"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 15:57 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
cubot писал(а):
Регистры очевидно тоже не с первого раза запомнил, правда ведь? ;)

Там все наглядно. Байты, биты и их назначение. Нужное включил, ненужное отключил. По сноскам посмотрел, от каких установок в других регистрах зависит конкретно этот регистр и там тоже повключал-поотключал что нужно. Я когда вижу слово "регистр", оно у меня с чем-то вроде К555ИРx, 74HC595 и им подобным ассоциируется. Усе конкретно железно, все ясно и понятно. Вот тебе байт, а вот тебе в нем биты. Делай что хочешь. А тут какой-то птичий язык, блин!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 16:13 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Чтобы я зря не мучился, прошу пояснить. Встроенные и стороннике библиотеки (не свои, не самописные) действительно облегчают написание программ? Или это костыли для тех, кто не понимает что происходит внутри микроконтроллера? Если первое, работа с ними имеет для меня смысл, а второе мне за ненадобностью. Почему спрашиваю? Потому что вижу повсюду на форумах и блогах вопли "дайте либу!!!". Вопли исходят в основном от школоты, потому как просят библиотеки чтобы чуть ли не светодиодом моргнуть или пару байт по SPI выплюнуть. И, вполне допускаю, что школота пошла по более заковыристому пути, просто не желая изучать системы тактирования и модули последовательной передачи данных. Потому и сомневаюсь, стоит ли тратить время на изучение работы с библиотеками? Не проще будет свои функции написать и вставлять их куда нужно? Когда занимался PIC микроконтроллерами, так и поступал. Почти для всего необходимого писал свои функции, в том числе и для I2C, чтение и запись, мастер и слейв. Но тут как раз перехожу на STM8 (в перспективе STM32), заодно решил перейти на более высокий уровень программирования, если программирование через либы таковым является. Но вот сейчас понадобилось разобраться с I2C в STM8. Сижу и туплю, не понимая куда мне двигаться. По привычному пути регистров или с библиотеками?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 16:47 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4334
Откуда: г. Липецк
Ну вы и спросили, вот сижу почесываю чепу чтоб ответить. В первую очередь важно на каком языке вы пишете, например ассемблер под словом "include" подразумевает не внешнюю библиотеку, а просто включаемый в листинг программы внешний ассемблерный файл.
В программировании МК так сложилось, я программирую на ассемблере, либы не применяю.
Но опять-же так сложилось, что приложения под Windows я пишу на Delphi, а тут без них не обойтись.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 17:51 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
Microlightavr писал(а):
Чтобы я зря не мучился, прошу пояснить. Встроенные и стороннике библиотеки (не свои, не самописные) действительно облегчают написание программ? Или это костыли для тех, кто не понимает что происходит внутри микроконтроллера?


Для stm что 32 что 8, библиотеки называемые SPL и HAL и есть вышеозвученные костыли.
Ничего они не облегчают а лишь создают видимость легкого уровня вхождения ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 18:19 
Старожил

Зарегистрирован: 10 фев 2016, 19:55
Сообщения: 351
Microlightavr писал(а):
Встроенные и стороннике библиотеки (не свои, не самописные) действительно облегчают написание программ?

Да. Но всегда найдутся типа "специалисты", которые будут кричать об их бесполезности.
Microlightavr писал(а):
Или это костыли для тех, кто не понимает что происходит внутри микроконтроллера?

Использование библиотек не освобождает от необходимости понимания внутренностей мк.
Microlightavr писал(а):
Вопли исходят в основном от школоты

Потому, что нормальный специалист найдёт нужную библиотеку без воплей на форумах.
Microlightavr писал(а):
Потому и сомневаюсь, стоит ли тратить время на изучение работы с библиотеками?

Холиварный вопрос. Смотрите на что потратите меньше времени: на изучение чужих библиотек или на изучение всей необходимой документации для написания своих.
Microlightavr писал(а):
Не проще будет свои функции написать и вставлять их куда нужно?

Это будет Ваша реализация библиотеки. Если кто-то уже написал похожую библиотеку, то Вы пополните ряды изобретателей велосипедов со своими багами и недоработками.
Microlightavr писал(а):
По привычному пути регистров или с библиотеками?

См. ответ на вопрос "Потому и сомневаюсь, стоит ли тратить время на изучение работы с библиотеками?".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 18:21 
Старожил
Аватара пользователя

Зарегистрирован: 20 апр 2010, 17:59
Сообщения: 1183
Откуда: Челябинск
Жирно...Так прикидываться человеком "вчера махавшим лопатой", а сегодня севшим за программирование.
"Не верю!"©

_________________
Everybody lies


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 20:39 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Чего сразу лопатой? Все больше паяльником. Иногда пишу по мелочи для себя. И как-то так сложилось, что мне проще этот самый интерфейс I2C на рассыпухе сделать, на счетчиках, триггерах, дешифраторах, да впендюрить туда транзисторные ключи с открытыми коллекторами чем разобраться со строчками типа (EnableSerialIntrfeisFastModeEbatKopatVashuuMat, 100khz, StoHuev). В результате у меня выработался комплекс неполноценности. Меня плющит, глядя на то как школьники одним движением мыши подключают графические дисплеи к МК, а мне приходится сначала брать даташит на контроллер этого дисплея, и долго в нем разбираться. Когда понадобилось FFT, мне пришлось брать учебники и вспоминать матан... Подходящих примеров в интернете все меньше и меньше, все чаще вижу вместо подробного разбора управляющих регистров какого-то чипа или строчек кода, вот эти самые Pfsms(ZaebaloVseNeSkazatKak);

dosikus_2 писал(а):
Microlightavr писал(а):
Чтобы я зря не мучился, прошу пояснить. Встроенные и стороннике библиотеки (не свои, не самописные) действительно облегчают написание программ? Или это костыли для тех, кто не понимает что происходит внутри микроконтроллера?


Для stm что 32 что 8, библиотеки называемые SPL и HAL и есть вышеозвученные костыли.
Ничего они не облегчают а лишь создают видимость легкого уровня вхождения ...
Подозреваю, что так оно и есть. Но, не имею возможности сравнивать, поскольку библиотеками ни разу не пользовался.

Вот, думаю подключить к STM8L15x что-нибудь по интерфейсу I2C с использованием библиотек, дабы получить опыт и решить для себя, нужно оно мне или нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 21:18 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3558
Откуда: Китай, Пекин
Цитата:
Меня плющит

расходимся.
тут не на что смотреть...

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 21:19 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6946
"Меня плющит, глядя на то как школьники одним движением мыши подключают графические дисплеи к МК, а мне приходится сначала брать даташит на контроллер этого дисплея, и долго в нем разбираться."
И не переживайте, это просто "не ваше". ))
Мир делится на тех, кто желает понимать что он делает и тех, которым лишние N-цать мегабайт никаких эмоций не доставляют. Разная философия, стиль жизни. Или, воспитание такое - на МП42 компьютер не сделаешь, а вот цветомузыку - вполне.
Могу посоветовать? ... не надо идти против природы, пишите на регистрах (основной код). Если нужны сторонние библиотеки, просто перепишите их под себя, с "0". Это дольше "одного клика" и программеры вас никогда не поймут. ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 21:44 
Старожил

Зарегистрирован: 10 фев 2016, 19:55
Сообщения: 351
Microlightavr писал(а):
мне проще этот самый интерфейс I2C на рассыпухе сделать, на счетчиках, триггерах, дешифраторах

А что так? Те же счётчики, триггеры и дешифраторы тоже можно на рассыпухе собрать.
Т.е. взять готовое "железное" решение (иными словами "железную" библиотеку) -- это нормально. А если дело касается программных библиотек, так целая проблема встала?
Как-нибудь определитесь -- если уж хардкор, так хардкор во всём....
Регистры в программе -- транзисторы в железе. К чёрту шифраторы, триггеры, операционные усилители и прочие микросхемы -- это всё костыли для школоло!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 21:50 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
u37 писал(а):
И не переживайте, это просто "не ваше". ))

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

Но, все же хочу попробовать хоть раз воспользоваться плодами чужого труда :D У меня стоит IAR EW for STM8 3.11.1. В нем есть встроенные библиотеки для работы с I2C в STM8L151K4? Если есть, как их найти в самом IAR? Если нет, где их найди для IAR? Библиотеки с сайта STMicroelectronics подойдут или они только для STVD? Как подключить библиотеку? С этим: "#include "libra.h" все понятно. Но, наверное что-то еще нужно сделать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 21:53 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Netzschlange писал(а):
А что так? Те же счётчики, триггеры и дешифраторы тоже можно на рассыпухе собрать.

А я их уже собирал когда-то, еще в школе :))) Триггеры на транзисторах, счетчики из этих триггеров, диодные дешифраторы. Чисто для понимания принципа работы всей этой байды.

К тому же, железные счетчики и дешифраторы не индусы писали, есличё... Левой ногой...

Я уже нашел в интернетах либу I2C для своего (почти) МК. Стал разбирать, и даже со своим скромным опытом в программировании нашел там пару сомнительных мест... и забил на нее.


Последний раз редактировалось Microlightavr 26 май 2020, 22:18, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:08 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 6946
Как? Да очень просто.
Шаг 1 - выкинуть stm8, купить stm32f030f4, например. Или любой другой, только не stm32f1*.
Шаг 2 - загрузить снипетсы с st.com (есть только для f0)
Шаг 3 - пользоваться и получать удовольствие
Выучивание RM обязательно, но это и так понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:10 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Не-не, я привык быть последовательным. Сначала STM8, и только потом STM32. Мне бы разобраться, где здесь, по пути C:\Program Files\IAR Systems\Embedded Workbench 8.3\stm8 искать пресловутые библиотеки для STM8L151K4, и есть ли они тут вообще? Есть что-то для демоплат, только я ни сном ни духом, какие МК на тех демоплатах были установлены. Куда копать?

Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:26 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4334
Откуда: г. Липецк
Microlightavr писал(а):
... Сначала STM8, и только потом STM32...

Нет тут никакой последовательности, эти семейства никак не соотносятся, наверное разные индусы их писАли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:28 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
anakost писал(а):
наверное разные индусы их писАли.

Одни и те же, к сожалению, поэтому в обоих случаях такое неюзабельное Г получилось!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:45 
Старожил

Зарегистрирован: 10 фев 2016, 19:55
Сообщения: 351
Microlightavr писал(а):
К тому же, железные счетчики и дешифраторы не индусы писали, есличё... Левой ногой...

Так и библиотеки не одни индусы пишут.
Microlightavr писал(а):
Я уже нашел в интернетах либу I2C для своего (почти) МК. Стал разбирать, и даже со своим скромным опытом в программировании нашел там пару сомнительных мест... и забил на нее.

Беря в руки новую микросхему, тоже её вскрываете и пытаетесь посмотреть как она там внутри устроена, что бы понять как она работает и хорошая это микра или отстой?
Или всё-таки смотрите на производителя (автора библиотеки), на документацию и на отзывы пользователей?

Хорошая библиотека имеет хорошую документацию. И не нужно лезть в её потроха, разве только с целью набраться опыта, изучая решения применяемые в коде библиотеки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:49 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
anakost писал(а):
Microlightavr писал(а):
... Сначала STM8, и только потом STM32...

Нет тут никакой последовательности, эти семейства никак не соотносятся, наверное разные индусы их писАли.
Ну, я посмотрел, настройки тактирования схожи, работа с портами ввода-вывода тоже. И таймеры не сильно различаются. А это первое, что мне потребуется с STM32. А дальше буду посмотреть.


Netzschlange писал(а):
Беря в руки новую микросхему, тоже её вскрываете и пытаетесь посмотреть как она там внутри устроена, что бы понять как она работает и хорошая это микра или отстой?
Читаю даташиты, смотрю блок схему, потом делаю макет и тестирую. Наверное все так делают? Или нет? Прямо вот так берут микру, заказывают печатные платы, и втыкают в схему, в надежде что все заведется с первого раза?

А что там с либой I2C для STM8 под IAR. Где ее взять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 22:57 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4729
Откуда: КЧР, поселок Нижний Архыз
Microlightavr писал(а):
А что там с либой I2C для STM8. Где ее взять?

Не нужны для STM8 никакие "либы"! Аналогично и для STM32. Даташит с RM в руки - и вперед!
Вот - из моих сниппетов, но я особо на STM8 не налегал: слабоват он, да и I2C там кривоват. В STM32 лучше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 23:00 
Старожил

Зарегистрирован: 12 июн 2010, 10:16
Сообщения: 245
Eddy_Em писал(а):
Не нужны для STM8 никакие "либы"

Это не для STM8, а для меня.

Eddy_Em писал(а):
Вот - из моих сниппетов
А как это в библиотеку оформить? С какими МК работает? Править много придется под STM8L151, косяков понаделаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как писать программы с использованием библиотек?
СообщениеДобавлено: 26 май 2020, 23:10 
Старожил

Зарегистрирован: 10 фев 2016, 19:55
Сообщения: 351
Eddy_Em писал(а):
Даташит с RM в руки - и вперед!

Про errata ещё забыли. Сколько там страниц перелопатить нужно, что бы I2C запустить?
Eddy_Em писал(а):
Вот - из моих сниппетов, но я особо на STM8 не налегал: слабоват он, да и I2C там кривоват. В STM32 лучше.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB