-
- Книженция, мб ранее пробегала. издание 13го года - RED_DRAGON(09.11.2013 01:16, ссылка)
- спасибо - m16_home(09.11.2013 18:04)
- Мне вот поражает количество плат для STM32 на сайтах типа изиэлектроникс :) в различных вариациях - RED_DRAGON(09.11.2013 01:04)
- Вот товарисчь хорошо написал, как эффективно воспринимать всё околоСТМ32шное. UraGun(145 знак., 08.11.2013 19:00)
- Просто парадигма Освоить От И До здесь дает отказ - не хватает времени. Приходится пользоваться навязываемыми абстракциями и неоптимальными решениями. Камень для умеющих обуздать свои перфекционистские амбиции в угоду получения результата на Юра(29 знак., 08.11.2013 14:35, )
- Ой, да ладно. Скажем, STM32F100 - вполне обозримый "от и до" МК, ничего сногсшибательного. - SciFi(08.11.2013 14:40)
- У всех разные уровни от и до. Я например после наверно полутора лет дискаверства хнекомфортно чувствую себя в аппаратных исключениях, не могу понять ассемблерных красот, мне не нравится многословность его прогрпммирования, я пару раз натыкался на Юра(89 знак., 08.11.2013 15:13, )
- Я эти ваши блюмблюатеки не пользую, так что этих глюков не имеют. И знаю, что с любой фичей этого МК, которую раньше не использовал, справлюсь за пару дней максимум. Глубже осваивать и не надо, мне кажется. - SciFi(08.11.2013 15:26)
- пару дней это долго. Нужно "за 5 минут" - koyodza(08.11.2013 19:56)
- То есть я могу писать, но все равно как выпускник автошколы. - Юра(08.11.2013 15:21, )
- Я эти ваши блюмблюатеки не пользую, так что этих глюков не имеют. И знаю, что с любой фичей этого МК, которую раньше не использовал, справлюсь за пару дней максимум. Глубже осваивать и не надо, мне кажется. - SciFi(08.11.2013 15:26)
- У всех разные уровни от и до. Я например после наверно полутора лет дискаверства хнекомфортно чувствую себя в аппаратных исключениях, не могу понять ассемблерных красот, мне не нравится многословность его прогрпммирования, я пару раз натыкался на Юра(89 знак., 08.11.2013 15:13, )
- Ой, да ладно. Скажем, STM32F100 - вполне обозримый "от и до" МК, ничего сногсшибательного. - SciFi(08.11.2013 14:40)
- Как много тут красиво написано! :-) Может и мне изменить Зилогу? И отдаться STM32? :-))) Эх-х-х... Задач только таких (чуть серьёзней) не предлагают. Если вот только всё же созреют управлять солнечной энергией. - Лагунов(08.11.2013 06:03)
- Какому Зилогу вы сейчас верны? Надеюсь не Z80? :) - Ксения(08.11.2013 13:01)
- Так с 1989 года правильные пацаны пользуют семейство МК Z8. А в новом тысчелетии - Z8Encore XP - Лагунов(09.11.2013 15:09)
- Какому Зилогу вы сейчас верны? Надеюсь не Z80? :) - Ксения(08.11.2013 13:01)
- Блин, Иваныч, не напрягай меня ! Ну, при всех твоих, этих, генераторах, и все такое. Че там STM32 ??? _basile(119 знак., 07.11.2013 23:58)
- Такой длинный флейм говорит о громадном интересе ко всей линейке STM32. KT(517 знак., 07.11.2013 13:31)
- STM32 - это аццкий кошмар. Никогда не думал, что по сравнению с AVR будет НАСТОЛЬКО сложнее. Прямо напичкан лишним. - Леонид Иванович(07.11.2013 13:56)
- с nxp было бы тоже самое, единственное - нету кривых бмблиотек - RED_DRAGON(07.11.2013 15:20)
- NXP мне тоже хорошие люди подарили вместе с LPC-Link, но теперь уже уверен, что в этой жизни прикасаться к ним не буду. - Леонид Иванович(07.11.2013 15:32)
- Виски Леонид, ещё виски :) - scorpion(07.11.2013 22:28)
- анекдотец припомнился: Он один раз попробовал и ему понравилось... С тех пор Изя заряжал мобилку только в гостях - Vit(07.11.2013 15:51)
- И хорошей документации тоже ж-( ИМХО у st "reference manual" чудо как хорош. - _keil(07.11.2013 15:24)
- NXP мне тоже хорошие люди подарили вместе с LPC-Link, но теперь уже уверен, что в этой жизни прикасаться к ним не буду. - Леонид Иванович(07.11.2013 15:32)
- он действительно намного сложнее, но это плата за возможности и только сначала :) я на stm32f100c4 замутил себе универсальную платку для поделок - 4 реле, 2 аналоговых входа с оу, 4 дискретных, 4 кнопки + экран от нокии 5110, которые на ебэее по AVF(174 знак., 07.11.2013 14:11)
- тогда зачем он Вам? Используйте AVR и дальше, раз тут всё лишнее - koyodza(07.11.2013 14:10)
- Поддался чужому влиянию. Но теперь жалко промышленной платы. - Леонид Иванович(07.11.2013 14:36)
- извините koyodza(86 знак., 07.11.2013 14:40)
- Не принимайте, пожалуйста на свой счет. Вы даже не представляете сколько людей и как настырно меня агитировали за STM32. Переделать на AVR очень хочется, тем более, на крайняк можно обойтись без внешнего АЦП, подмешав на вход встроенного пилу. Леонид Иванович(127 знак., 07.11.2013 14:48)
- Зачем тратить ресурсы на внешний АЦП, если уже есть внутренний? Может требуются какие-то невероятные характеристики? - _keil(07.11.2013 16:19)
- Хочется 12 бит. - Леонид Иванович(07.11.2013 16:23)
- Так столько и есть! Плюс аналоговый мультиплексор на 16 каналов - _keil(07.11.2013 16:28)
- В AVR нет. В этом моя беда. Разве что Xmega, но оно тоже сложно... - Леонид Иванович(07.11.2013 22:25)
- Всё сходится! AVR маловат, Xmega слишком сложна - отличный повод перейти на STM32! Поначалу может тошнить, слишком большая разница. Потом будете недоумевать почему в STM32 нет собственного контроллера DDR3 :-) - _keil(08.11.2013 05:16)
- ... и когда же наконец они выпустят STM64! :) - vmp(08.11.2013 08:00)
- Всё сходится! AVR маловат, Xmega слишком сложна - отличный повод перейти на STM32! Поначалу может тошнить, слишком большая разница. Потом будете недоумевать почему в STM32 нет собственного контроллера DDR3 :-) - _keil(08.11.2013 05:16)
- В AVR нет. В этом моя беда. Разве что Xmega, но оно тоже сложно... - Леонид Иванович(07.11.2013 22:25)
- Так столько и есть! Плюс аналоговый мультиплексор на 16 каналов - _keil(07.11.2013 16:28)
- Хочется 12 бит. - Леонид Иванович(07.11.2013 16:23)
- Леонид Иванович, чем больше масса, тем больше сила инерции. Ваши коллеги пытаются придать ускорение, чтобы Вы достигли небывалой силы. Физика. Не обижайтесь. - _keil(07.11.2013 15:00)
- Где-то я понимаю. Но трудно просто фантастически. - Леонид Иванович(07.11.2013 15:02)
- Увы, нужно ориентироваться на copy-paste, потому что разобраться в этом всем действительно сложно. Просто физически много. - Vladimir Ljaschko(07.11.2013 15:08)
- От такого подхода коробит, вот и ною здесь. - Леонид Иванович(07.11.2013 15:27)
- Люблю с Вами поспорить, но здесь солидарен полностью. После "нормальных" проциков АРМ кажется продуктом пьяной вечеринки. - Крок(08.11.2013 15:31)
- Да не нужно вообще использовать эти АРМы, если душа к ним не лежит. Как только появятся задачи, где нужны 32-битная арифметика или арифметика с плавающей точкой (тут нужен наверное CM4), то, как мне кажется, освоение быстро пойдёт. А так, через FDA(54 знак., 07.11.2013 22:18)
- Вы правы, мазохизм в чистом виде. А задач таких у меня не появится, так как я четко знаю свою нишу. - Леонид Иванович(07.11.2013 22:27)
- Могу выделить специальную конфу. "Ной жив!" или что-то вроде этого. Без шуток ;) - General(07.11.2013 20:59)
- Вы знаете, наверное нужно :=) - koyodza(07.11.2013 23:43)
- Вы многое можете, я знаю. Знаю, что занимаетесь микропотребляющими методами измерения наносекундных интервалов. - Леонид Иванович(07.11.2013 22:28)
- типо "негодую" - Vit(07.11.2013 21:12)
- От такого подхода коробит, вот и ною здесь. - Леонид Иванович(07.11.2013 15:27)
- Увы, нужно ориентироваться на copy-paste, потому что разобраться в этом всем действительно сложно. Просто физически много. - Vladimir Ljaschko(07.11.2013 15:08)
- Где-то я понимаю. Но трудно просто фантастически. - Леонид Иванович(07.11.2013 15:02)
- Зачем тратить ресурсы на внешний АЦП, если уже есть внутренний? Может требуются какие-то невероятные характеристики? - _keil(07.11.2013 16:19)
- Не принимайте, пожалуйста на свой счет. Вы даже не представляете сколько людей и как настырно меня агитировали за STM32. Переделать на AVR очень хочется, тем более, на крайняк можно обойтись без внешнего АЦП, подмешав на вход встроенного пилу. Леонид Иванович(127 знак., 07.11.2013 14:48)
- извините koyodza(86 знак., 07.11.2013 14:40)
- Поддался чужому влиянию. Но теперь жалко промышленной платы. - Леонид Иванович(07.11.2013 14:36)
- А чего стоит только STM Studio. Попробуйте! - KT(07.11.2013 14:07)
- Леонид Иванович, что же лишнее? Слишком богатая периферия? Не включайте клок и не придётся настраивать! - _keil(07.11.2013 14:07)
- Да всё там излишне сложное. Порты, например. Зачем столько вариантов настройки? Или тактирование. Хватило бы только кварца. - Леонид Иванович(07.11.2013 14:14)
- слишком широкий вопрос. Если сузить, могу попытаться ответить - koyodza(07.11.2013 14:22)
- С портами и тактированием было идеально у AT89C51. У AVR усложнили, пользы меньше, чем нервов с фузами. У STM32 - это вообще сплошные рюшечки. - Леонид Иванович(07.11.2013 15:38)
- Педантичная документация для очень интересного семейства. Так и должно быть. Рюшечки - внимание к мелочам. Потому что в гонке производителей мелочей нет. - _keil(07.11.2013 15:53)
- в портах нет ни одного лишнего бита. Что конкретно Вам не понятно или не нравится? - koyodza(07.11.2013 15:45)
- Не нравиться обилие режимов. У 8051 даже направление настраивать не нужно было. Ну ладно, пусть как у AVR. Но тут столько лишнего, что некомфортно. - Леонид Иванович(07.11.2013 15:54)
- что именно Вы считаете лишним? koyodza(947 знак., 07.11.2013 15:56 - 16:02)
- Да может оно и нравится. Но чтобы понять, что где, пришлось несколько дней читать. По тактированию так же. Дело не в возможностях процессора. Дело в нервах человека. - Леонид Иванович(07.11.2013 16:28)
- Например, 50, 10, 2 МГц. Лишним и непонятным. Что там происходит? Леонид Иванович(268 знак., 07.11.2013 15:59)
- нет, это никакие не делители. Это именно скорость нарастания. Можете установить любую, С1-94 всё равно не покажет разницы. Зачем нужно написал выше - koyodza(07.11.2013 16:03, ссылка)
- Эффект будет заметен на достаточно больших платах с высокочастотными сигналами Michael_75(718 знак., 07.11.2013 16:29)
- Это НЕ эквивалентно включению резистора, насколько я понял. В статике ничего не меняется. Или я не прав? - Леонид Иванович(07.11.2013 22:33)
- Да, в статике ничего не меняется Michael_75(334 знак., 08.11.2013 10:44)
- Это НЕ эквивалентно включению резистора, насколько я понял. В статике ничего не меняется. Или я не прав? - Леонид Иванович(07.11.2013 22:33)
- Еще у меня вопрос возник по прерываниям. Леонид Иванович(99 знак., 07.11.2013 16:26)
- Потому, что вариантов комплектации больше. И периферии и прерываний больше. Вектора у другого семейства разные. Есть семейство толще, есть тоньше. Просто берете startup.S соответствующий семейству, выбранную Вами. - _keil(07.11.2013 16:36)
- Это не ответ. - Леонид Иванович(07.11.2013 22:33)
- Правильный стартап ниже. Всё остальное - от лукавого. SciFi(1691 знак., 07.11.2013 22:38)
- Леонид Иванович, Вас разводят, а Вы шуток не понимаете. В первой же строке видно другое семейство #include "stm32f2regs.h". И никогда не верьте даже фрагментам cmsis из неоригинальных источников. Онли ОФФИШИАЛ сайт. В данном случае www.st.com - _keil(08.11.2013 09:04)
- Сегодня мало что понимаю. Были гости, которых я догонял с криками: "Давай покажу тебе класс!" Ничего опасного, имел в виду класс управления GPIO STM32. Но все равно от меня убегали... - Леонид Иванович(07.11.2013 22:51)
- Ну я бы тоже не стал задерживаться :-) - SciFi(07.11.2013 22:55)
- Типа такого Леонид Иванович(246 знак., 07.11.2013 23:02)
- О, ЛИ пишет плюсовую либу для периферии! :-)) Не поделитесь потом? - =AlexD=(08.11.2013 11:20)
- Сдает, ЛИсапеды стал делать - amusin(08.11.2013 11:32, ссылка, ссылка)
- О, ЛИ пишет плюсовую либу для периферии! :-)) Не поделитесь потом? - =AlexD=(08.11.2013 11:20)
- Типа такого Леонид Иванович(246 знак., 07.11.2013 23:02)
- Ну я бы тоже не стал задерживаться :-) - SciFi(07.11.2013 22:55)
- Правильный стартап ниже. Всё остальное - от лукавого. SciFi(1691 знак., 07.11.2013 22:38)
- Боюсь, это лень: они тупо взяли стартап от ARM7TDMI и подрихтовали его под Cortex-M. Одной из разрекламированных фишек Cortex-M является возможность кодить без асма, в том числе стартап, а они забили на это дело. А зря, ИМХО. - SciFi(07.11.2013 16:43)
- Это не ответ. - Леонид Иванович(07.11.2013 22:33)
- Потому, что вариантов комплектации больше. И периферии и прерываний больше. Вектора у другого семейства разные. Есть семейство толще, есть тоньше. Просто берете startup.S соответствующий семейству, выбранную Вами. - _keil(07.11.2013 16:36)
- Эффект будет заметен на достаточно больших платах с высокочастотными сигналами Michael_75(718 знак., 07.11.2013 16:29)
- нет, это никакие не делители. Это именно скорость нарастания. Можете установить любую, С1-94 всё равно не покажет разницы. Зачем нужно написал выше - koyodza(07.11.2013 16:03, ссылка)
- А кто, кроме Вас, будет знать что на Вашей плате будет входом, а что выходом? Может Вам нужен pull-up? pull-down? Или альтернативная функция? А может Вам на готовой плате потребовался ремап? Всё для Вас. Как сконфигурите, так и получите. Просто _keil(9 знак., 07.11.2013 15:58)
- Начинаю верить в копроэкономику. Ничего мне этого не надо. Удивлен, что людям дали кучу барахла, а они счастливы и нахваливают. Хочу низкую цену на AVR. Вот это была бы бомба! - Леонид Иванович(07.11.2013 16:01)
- А я хочу stm32f100c4 за 1$. Кто кроме Вас знает пригодится Вам в конкретной плате или нет? Богатая периферия не влияет на цену. Халява! Нужно радоваться, что производитель подумал и дал свободу. - _keil(07.11.2013 16:08)
- Печалюсь, что в комплекте с таким дешевым процессором продается неслыханный гемор. - Леонид Иванович(07.11.2013 16:24)
- Придёт время и о тяготах перехода Вы забудете. Избыточное окажется естественным. - _keil(07.11.2013 16:30)
- В этом Вы правы. Плохое быстро забывается. Но сегодня мне так плохо (и немедленно выпил). - Леонид Иванович(07.11.2013 22:31)
- Похоже это боязнь чистого листа бумаги. - КТ(09.11.2013 22:09)
- В этом Вы правы. Плохое быстро забывается. Но сегодня мне так плохо (и немедленно выпил). - Леонид Иванович(07.11.2013 22:31)
- посмотрите на это с другой стороны: нужно как-то отсеять хоть часть студентов, готовых сделать "за 5 минут". koyodza(92 знак., 07.11.2013 16:29)
- Придёт время и о тяготах перехода Вы забудете. Избыточное окажется естественным. - _keil(07.11.2013 16:30)
- Печалюсь, что в комплекте с таким дешевым процессором продается неслыханный гемор. - Леонид Иванович(07.11.2013 16:24)
- А я хочу stm32f100c4 за 1$. Кто кроме Вас знает пригодится Вам в конкретной плате или нет? Богатая периферия не влияет на цену. Халява! Нужно радоваться, что производитель подумал и дал свободу. - _keil(07.11.2013 16:08)
- Начинаю верить в копроэкономику. Ничего мне этого не надо. Удивлен, что людям дали кучу барахла, а они счастливы и нахваливают. Хочу низкую цену на AVR. Вот это была бы бомба! - Леонид Иванович(07.11.2013 16:01)
- что именно Вы считаете лишним? koyodza(947 знак., 07.11.2013 15:56 - 16:02)
- Не нравиться обилие режимов. У 8051 даже направление настраивать не нужно было. Ну ладно, пусть как у AVR. Но тут столько лишнего, что некомфортно. - Леонид Иванович(07.11.2013 15:54)
- С портами и тактированием было идеально у AT89C51. У AVR усложнили, пользы меньше, чем нервов с фузами. У STM32 - это вообще сплошные рюшечки. - Леонид Иванович(07.11.2013 15:38)
- Первое впечатление, потом покажется мало. Начнёте требовать добавки. Варианты настройки для Вашего удобства. Чтобы Вы выбрали наиболее подходящий Вам режим работы. Мне хватает HSI+PLL. Кварца нет. - _keil(07.11.2013 14:19)
- Завтра будет другой дешевый проц и все по новой.Пользую только крайне необходимое.Все что можно сделать стандартным образом делаю им. - plainuser(07.11.2013 15:28)
- +1 - AVF(07.11.2013 14:22)
- попробуйте 430, там тактирование ну проще не куда :) - Nikolay801_(07.11.2013 14:19)
- слишком широкий вопрос. Если сузить, могу попытаться ответить - koyodza(07.11.2013 14:22)
- Да всё там излишне сложное. Порты, например. Зачем столько вариантов настройки? Или тактирование. Хватило бы только кварца. - Леонид Иванович(07.11.2013 14:14)
- Это только первое впечатление :) - KT(07.11.2013 14:05)
- Самый глупый совет, который приходилось слышать - это "Переходи на STM32!" - Леонид Иванович(07.11.2013 14:11)
- лучше иметь лишнее, чем не иметь нужного. - Nikolay801_(07.11.2013 13:59)
- с nxp было бы тоже самое, единственное - нету кривых бмблиотек - RED_DRAGON(07.11.2013 15:20)
- STM32 - это аццкий кошмар. Никогда не думал, что по сравнению с AVR будет НАСТОЛЬКО сложнее. Прямо напичкан лишним. - Леонид Иванович(07.11.2013 13:56)
- В свежей версии standard_peripheral_library есть много интересного , примеры , заготовки системных файлов.Описание их применения , а идеология применения иногда меняется.Ну и поскольку постоянно и одновременно программирую на ИАР и КЕЙЛ для plainuser(101 знак., 07.11.2013 13:12)
- На Кинетисе я аналогичного результата достиг за полчаса. При помощи копеечного девборда FRDM-KL25Z и бесплатного АРМ-овского компилятора mbed - =AK=(07.11.2013 11:30, ссылка)
- Здесь не Кинетикс главное, а мозги. У одних больше, у других - меньше. - Леонид Иванович(07.11.2013 12:39)
- Многоуважаемый Леонид Иванович, не надо поддаваться пессимизму, это грешно. =AK=(574 знак., 07.11.2013 17:11)
- 100% Разделяй и властвуй. Нельзя объять необъятное. - fk0(08.11.2013 09:07)
- Я тоже вижу, что не вникают в детали. Меня это бесит. Вот тут я задаю элементарные вопросы, никто не может ответить. Поколение пепси. Леонид Иванович(91 знак., 07.11.2013 22:36)
- иногда чтобы получить ответ нужно быть готовым его услышать - koyodza(07.11.2013 23:46)
- Да Вы наверняка знаете ответы, но так напрягать человека нехорошо. - Леонид Иванович(08.11.2013 00:34)
- ...в проповедники. - alex68(07.11.2013 23:22)
- Да сам знаю, что нужно уходить из электроники, но остальное еще хуже умею. - Леонид Иванович(08.11.2013 00:33)
- иногда чтобы получить ответ нужно быть готовым его услышать - koyodza(07.11.2013 23:46)
- По хорошему "перелопачивание документации" и прочее должно быть оправданным только для массовых изделий (где снижение себестоимости оправдывает доп. затраты на разработку). - SciFi(07.11.2013 17:18)
- Но мы то здесь за жизнь, а не за организацию выпуска массовых изделий. - Леонид Иванович(07.11.2013 22:37)
- Многоуважаемый Леонид Иванович, не надо поддаваться пессимизму, это грешно. =AK=(574 знак., 07.11.2013 17:11)
- А мне пару часов вместе с кофепитиями пришлось с FRDM-KL02Z:) - Vit(07.11.2013 11:32, ссылка)
- Здесь не Кинетикс главное, а мозги. У одних больше, у других - меньше. - Леонид Иванович(07.11.2013 12:39)
- IAR ??? Иваныч, не смеши. При твоих - то опытах.... Скажи че надо. Я те в Яре за пол-часа накидаю. - _basile(06.11.2013 21:37)
- STM32 я только начинаю изучать. - Леонид Иванович(06.11.2013 21:47)
- Кстати, очень простая инициализация! Если, скажем, Вам не нужен SPI - просто забудте о нём! Когда понадобится, включите тактирование и запишете регисты управления по вкусу - Keil(06.11.2013 22:10, )
- Леонид Иванович, уверен stm32 Вам понравится. Как минимум: производительность, богатая периферия, ввод-вывод как операции со структурами и др. - Keil(06.11.2013 22:07, )
- Подходить надо аккуратно. Вот, скажем, у LPC - последовательные интерфейсы - с FIFO. STM ставит на DMA. _basile(19 знак., 06.11.2013 22:41)
- Пока кроме отрицательных эмоций нет ничего. Вторую неделю над мигающим светодиодом мучаюсь. - Леонид Иванович(06.11.2013 22:14)
- Этот процесс не может пройти мгновенно и безболезненно. Двигайтесь дальше и обрящете - Keil(06.11.2013 22:21, )
- потерпите. Дальше пойдёт легче, если не будете противостоять так упорно - koyodza(06.11.2013 22:15)
- По ссылке нашел такой текст (это правда?): Леонид Иванович(06.11.2013 23:10, ссылка)
- Тогда ИАР вообще идет боком.После слов ...С момента выхода версии IAR EWARM 6.2 в среду разработки включены собственные библиотеки CMSIS (файлы core_cm3). Это нововведение обосновывают улучшением оптимизации кода. При загрузке проектов, plainuser(214 знак., 07.11.2013 13:16)
- свои библиотеки отключаются ловким движением одного пальца - Vladimir Ljaschko(07.11.2013 14:08)
- iar возомнил себя выше st? 3.14пец! Forget IAR, use Keil! - _keil(07.11.2013 13:21)
- гцц рулез :) - RED_DRAGON(07.11.2013 15:52)
- Makefile для make рисовать notepad'ом ? - _keil(07.11.2013 16:25)
- Карандашом на бумаге печатными буквами. Потом отсканировать и распознать. И так три раза: для закрепления выученного материала. - SciFi(07.11.2013 16:29)
- Тогда лучше фотошоп+финеридер. При таких раскладах нафик такой фреймворк. Слишком дорого в обслуживании это бесплатное решение. Пусть остается в своей среде. - _keil(07.11.2013 16:45)
- Учить что-то новое всегда дорого - спросите у ЛИ, сколько нервов ему это стоит. И не факт, что пригодится: всё то же самое можно сделать на
AVRколенке. - SciFi(07.11.2013 16:49)- У меня нервный срыв, и виновник его - STM32. Простите, пожалуйста. - Леонид Иванович(07.11.2013 22:39)
- Прощаю :-) - SciFi(07.11.2013 22:41)
- Есть вариант с небольшим количеством конфигурационных регистров. См. сцылко - _keil(07.11.2013 16:54, ссылка)
- У меня нервный срыв, и виновник его - STM32. Простите, пожалуйста. - Леонид Иванович(07.11.2013 22:39)
- Учить что-то новое всегда дорого - спросите у ЛИ, сколько нервов ему это стоит. И не факт, что пригодится: всё то же самое можно сделать на
- Тогда лучше фотошоп+финеридер. При таких раскладах нафик такой фреймворк. Слишком дорого в обслуживании это бесплатное решение. Пусть остается в своей среде. - _keil(07.11.2013 16:45)
- Карандашом на бумаге печатными буквами. Потом отсканировать и распознать. И так три раза: для закрепления выученного материала. - SciFi(07.11.2013 16:29)
- Makefile для make рисовать notepad'ом ? - _keil(07.11.2013 16:25)
- гцц рулез :) - RED_DRAGON(07.11.2013 15:52)
- И да и нет. На моё IHMO лучше учить "reference manual", чем standard_peripheral_library - _keil(06.11.2013 23:17)
- standard_peripheral_library я сразу выкинул, на изучение всего этого меня не хватит. - Леонид Иванович(06.11.2013 23:39)
- это всё равно как Вы бы сказали "не нужны мне учебники по физике, сам во всём разберусь и свои формулы выведу" - koyodza(06.11.2013 23:42)
- зря. Изучать сразу всё там не нужно. А для вхождения в тему этот путь значительно легче. Потом по мере необходимости можно отказываться от некоторых вещей в пользу своих - koyodza(06.11.2013 23:41)
- Начал разбираться с GPIO, ничего не понял. А когда почитал даташит, все биты в регистрах понятны. - Леонид Иванович(06.11.2013 23:46)
- GPIO - просто песня, можно в стиле in и out, можно (и нужно) GPIO_BSRR_BR1 и GPIO_BRR_BR1. Когда почувствуете, ещё будете удивляться как Вы жили без BSRR и BRR - _keil(07.11.2013 00:14)
- А в чем смысл BRR, если BSRR может как устанавливать, так и сбрасывать? - Леонид Иванович(07.11.2013 01:08)
- на СМ3 и СМ4 можно через bit bang, это ещё лучше koyodza(196 знак., 07.11.2013 00:27)
- Не на всех CM3/4 это работает. STM32F3, например. - AD(07.11.2013 14:25)
- само собой. Тут речь про F1 - koyodza(07.11.2013 14:29)
- А чем лучше через bit bang? - Леонид Иванович(07.11.2013 01:09)
- вместо записи маски используется запись по адресу. Удобнее, если пины могут быть переконфигурированы в процессе работы программы: просто храните указатель на 32-битное слово, которое отвечает за состояние отдельного пина koyodza(283 знак., 07.11.2013 01:18)
- Альтернатива -
макросinline-функция#define - если решили назначить сигнал другому пину, просто указали новую маску в тот же или другой порт - _keil(07.11.2013 09:02)- Вы не поняли: у Вас адрес порта и маска (два параметра), у меня один адрес. Пока всё задано define большой разницы нет (хотя на самом деле небольшая разница есть в получаемом коде), но когда Вам понадобится в процессе работы программы koyodza(282 знак., 07.11.2013 14:05 - 14:08)
- Я делаю шаблонный класс, где параметрами будут порт и пин. - Леонид Иванович(07.11.2013 12:40)
- Рабочий вариант, но call и ret требуют ненулевого cpu time. Как минимум push/pop. Может случиться что эта задержка ограничит желаемую скорость ногодрыганья. Дело Ваше, я предпочту #define set GPIOB->BSRR=GPIO_BSRR_BR1; #define reset GPIOB->BRR _keil(115 знак., 07.11.2013 13:13)
- Какие call и ret? Функции, определённые в теле класса инлайнятся без каких-либо накладных расходов. - =AlexD=(08.11.2013 11:40)
- Рабочий вариант, но call и ret требуют ненулевого cpu time. Как минимум push/pop. Может случиться что эта задержка ограничит желаемую скорость ногодрыганья. Дело Ваше, я предпочту #define set GPIOB->BSRR=GPIO_BSRR_BR1; #define reset GPIOB->BRR _keil(115 знак., 07.11.2013 13:13)
- Альтернатива -
- вместо записи маски используется запись по адресу. Удобнее, если пины могут быть переконфигурированы в процессе работы программы: просто храните указатель на 32-битное слово, которое отвечает за состояние отдельного пина koyodza(283 знак., 07.11.2013 01:18)
- Не на всех CM3/4 это работает. STM32F3, например. - AD(07.11.2013 14:25)
- это GPIO, дальше будет наоборот :=) - koyodza(06.11.2013 23:48)
- GPIO - просто песня, можно в стиле in и out, можно (и нужно) GPIO_BSRR_BR1 и GPIO_BRR_BR1. Когда почувствуете, ещё будете удивляться как Вы жили без BSRR и BRR - _keil(07.11.2013 00:14)
- Начал разбираться с GPIO, ничего не понял. А когда почитал даташит, все биты в регистрах понятны. - Леонид Иванович(06.11.2013 23:46)
- standard_peripheral_library я сразу выкинул, на изучение всего этого меня не хватит. - Леонид Иванович(06.11.2013 23:39)
- Тогда ИАР вообще идет боком.После слов ...С момента выхода версии IAR EWARM 6.2 в среду разработки включены собственные библиотеки CMSIS (файлы core_cm3). Это нововведение обосновывают улучшением оптимизации кода. При загрузке проектов, plainuser(214 знак., 07.11.2013 13:16)
- В голове полная каша. Никак не могу разобраться со startup. Леонид Иванович(450 знак., 06.11.2013 22:51)
- Универсального startup*.s не существует в природе - слишком много принципиально разных процов на едином ядре. Нужно подключать свой startup_stm32f10x_ld_vl.s соответствующий семейству - _keil(06.11.2013 23:00)
- Это понятно. Но что он делает? - Леонид Иванович(06.11.2013 23:03)
- Как минимум __Vectors - вектора прерываний на которые Вы можете навешать своих обработчиков - _keil(06.11.2013 23:06)
- Это понятно. Но что он делает? - Леонид Иванович(06.11.2013 23:03)
- Поскольку *.S - ассемблер, попробуйте asm(.include 'include\startup_stm32f10x_ld_vl.s'); Он не *.h и не *.c - стиль #include "include\stm32f10x.h" _keil(95 знак., 06.11.2013 22:57)
- Его можно открыть блокнотом и посмотреть! Самое интересное - скелет для обработчиков прерываний. Важная штука - имена процедур. Потребуется если будете писать свой обработчик - _keil(06.11.2013 23:04)
- Прежде чем подключить, хотелось бы знать, что он делает. - Леонид Иванович(06.11.2013 23:00)
- Содержит interrupt vector table - _keil(06.11.2013 23:18)
- и не только. Но для начала можно считать этого знания должно быть достаточно - koyodza(06.11.2013 23:21)
- Посмотрел. Действительно там таблица векторов, Леонид Иванович(458 знак., 06.11.2013 23:38)
- Прикол в том, что фся периферия структурирована. Например, запись в регистр ничем не отличается от записи в элемент структуры. Доставляет !-) И во всех однотипных блоках (например, uart) единый конфиг. Нет такого, чтобы какой-нибудь дополнительный _keil(95 знак., 07.11.2013 09:16)
- Там в стартапе возле имен обработчиков есть волшебное слово weak. И для Cortex не нужно писать модификаторы __interrupt и номер вектора - оно само в этой таблице. И если Вам нужно подменить пустышку на свою функцию, то Вы её просто пишете. - Vit(07.11.2013 00:07)
- Не редактируйте SystemInit(), startup_stm32f10x_md_vl.s, system_stm32f10x.c ! Пользуйтесь HSI или пишите свой init(), вызываемый в начале main() - _keil(07.11.2013 00:05)
- можно написать вообще всё своё, только замучитесь. Да и если уж делать это, то не в первом проекте - koyodza(06.11.2013 23:44)
- А смысл тогда в первом проекте, когда непонятно, как он работает? - Леонид Иванович(06.11.2013 23:47)
- Исключительно просто! Пример: void USART1_IRQHandler(){} - _keil(07.11.2013 00:01)
- Вы же не сможете понять всё одновременно, что-то начнёте понимать раньше, что-то позже. Те вопросы, которые Вы сейчас задаёте, я бы рекомендовал отложить на позже. koyodza(164 знак., 06.11.2013 23:51)
- Или писать сразу в HEX ;-) - _keil(07.11.2013 00:01)
- А смысл тогда в первом проекте, когда непонятно, как он работает? - Леонид Иванович(06.11.2013 23:47)
- Посмотрел. Действительно там таблица векторов, Леонид Иванович(458 знак., 06.11.2013 23:38)
- и не только. Но для начала можно считать этого знания должно быть достаточно - koyodza(06.11.2013 23:21)
- Содержит interrupt vector table - _keil(06.11.2013 23:18)
- Универсального startup*.s не существует в природе - слишком много принципиально разных процов на едином ядре. Нужно подключать свой startup_stm32f10x_ld_vl.s соответствующий семейству - _keil(06.11.2013 23:00)
- По ссылке нашел такой текст (это правда?): Леонид Иванович(06.11.2013 23:10, ссылка)
- STM32 я только начинаю изучать. - Леонид Иванович(06.11.2013 21:47)
- Леонид Иванович, target вторичен и имеет смысл для сценария cmsis из комплекта компилятора. Лучше берите с сайта производителя кристалла. #define STM32F10X_LD_VL нужен, т.к. один и тот же cmsis содержит описание периферии нескольких весьма по Keil(151 знак., 06.11.2013 21:28, )
- Я хочу просто выбирать Target и не набирать ручками #define STM32F10X_LD_VL. При выборе Target наверняка определяется какой-то символ, неужели никто не автоматизировал включение STM32F10X_LD_VL? Леонид Иванович(99 знак., 06.11.2013 21:34)
- С EFM32 в Keil нужно аналогичный дефайн задавать в свойствах проекта, но не для семейства, а просто для того же проца:) Можно обратиться в саппорт и за умеренную плату они сбецают генерилку. Я так думаю:) Vit(102 знак., 06.11.2013 23:57)
- Просто #define STM32F10X_LD_VL в начале и фсё! Не стоит ждать милостей от природы, взять их - наша задача (c) - _keil(06.11.2013 23:59)
- А вот и нихера. Если родные файлы не трогать (а их лучше не трогать), то замахаешься выстраивать хедеры по нужному порядку включения. Ну а с EFM32 и такой строчкой уколхозить не получается - скомпилить скомпилится, а дальше болт - Vit(07.11.2013 00:02)
- Сорри! Конечно добавить #include stm32f10x.h core_cm3.h core_cm3.c system_stm32f10x.h system_stm32f10x.c а также startup_stm32f10x_ld_vl.s ОДИН раз, но в правильном поряде. ПРОФИТ! - _keil(07.11.2013 00:08)
- Вот это говнокод! Кошмар! - FDA(07.11.2013 11:17)
- А как надо? - Леонид Иванович(07.11.2013 12:41)
- Надо включать один инклюд - stm32f10x.h, а символ STM32F10X_LD_VL определять в Project.Options.Compiler.Preprocessor.Defined symbols. - йцукен(07.11.2013 20:29, )
- И всё? Это я сделал. Но как же Леонид Иванович(49 знак., 07.11.2013 22:41)
- +100500 - Vit(07.11.2013 20:49)
- #include <xc.h> и вперёд! :-))) - FDA(07.11.2013 13:57)
- Надо включать один инклюд - stm32f10x.h, а символ STM32F10X_LD_VL определять в Project.Options.Compiler.Preprocessor.Defined symbols. - йцукен(07.11.2013 20:29, )
- Бредите? Хотите настоящий? Нажмите debug в iar - _keil(07.11.2013 11:44)
- А как надо? - Леонид Иванович(07.11.2013 12:41)
- Ну вообще капец! А какой порядок правильный? - Леонид Иванович(07.11.2013 01:14)
- Он как раз и описан этажом выше! Сначала #define "СемействоВыбранноеВами", потом "#include stm32f10x.h core_cm3.h core_cm3.c system_stm32f10x.h system_stm32f10x.c а также startup_stm32f10x_ld_vl.s", ну может какой #include stdlib по вкусу. И не _keil(180 знак., 07.11.2013 09:25)
- Это из разряда вредных советов. IMNHO. Либо скопировать в проект и надругаться перед одной строчкой разбора семейств, либо вписать глобальную переменную проекта, что предпочтительнее. - Vit(07.11.2013 09:27)
- Это Ваш выбор. Пользоваться оригиналом или копией. Родным или 'интегрированным' cmsis - _keil(07.11.2013 09:30)
- Не передёргивайте - чем я пользуюсь Вы не знаете. Если порядок включения хедеров может развалить проект, то это ГОВНОКОД - Vit(07.11.2013 09:37)
- Порядок включения хедеров может знать только iar? Остальные даже не догадываются, что сначала #define, затем #ifdef ? st не знает что производит? А iar знает? И все говнокодят, кроме iar? Ну-ну - _keil(07.11.2013 10:10)
- Вы просто даже не понимаете, о чём я говорю. Так же как путаете CMSIS и stdlib. - Vit(07.11.2013 10:42)
- Я ничего не путаю. Ваша иллюзия. "standard peripheral library" не использую. CMSIS строго с сайта производителя кристалла. - _keil(07.11.2013 10:50)
- Вы не понимаете, что говнокодите, и предлагаете другим делать так же. Лучше научитесь делать проекты так, чтобы порядок включения хедеров не влиял на его работоспособность. ЗЫ и для общего развития - CMSIS это в первую очередь стандарт от Vit(12 знак., 07.11.2013 11:02, ссылка)
- Включать хедеры в конец проекта? Или не делать это вовсе? Зачем, ведь компилятор сделает это за Вас! - _keil(07.11.2013 11:07)
- Прекратите истерику. Ну не умеете. Не понимаете. Бывает. Разобраться не сложно. Не хотите - не разбирайтесь. Только вредные советы не давайте. - Vit(07.11.2013 11:11)
- "Глубокие" выводы на пустом месте. Продолжайте верить, что только компилятор знает единственно верный путь, iar совершенен, всегда создает безупречный код, всё знает о всех (даже будущих) кристаллах лучше производителя и прочее - _keil(07.11.2013 11:18)
- Причём тут IAR? Пох на компилятор - какой нужно, такой и идёт в дело. ЗЫ. Не переходите, плз, на личности. А то недолго до репрессий. - Vit(07.11.2013 11:24)
- "Глубокие" выводы на пустом месте. Продолжайте верить, что только компилятор знает единственно верный путь, iar совершенен, всегда создает безупречный код, всё знает о всех (даже будущих) кристаллах лучше производителя и прочее - _keil(07.11.2013 11:18)
- Прекратите истерику. Ну не умеете. Не понимаете. Бывает. Разобраться не сложно. Не хотите - не разбирайтесь. Только вредные советы не давайте. - Vit(07.11.2013 11:11)
- Я рад что Вы знаете что такое CMSIS и зачем он нужен - _keil(07.11.2013 11:04)
- Вчера ошибочно принял Ваше сообщение о правильном порядке включения хедеров за юмор. - Vit(07.11.2013 11:06)
- Не юмор, но проверенный вариант. Просто каждый делает собственный выбор. Ничего личного !-) - _keil(07.11.2013 11:09)
- Вчера ошибочно принял Ваше сообщение о правильном порядке включения хедеров за юмор. - Vit(07.11.2013 11:06)
- Включать хедеры в конец проекта? Или не делать это вовсе? Зачем, ведь компилятор сделает это за Вас! - _keil(07.11.2013 11:07)
- Вы не понимаете, что говнокодите, и предлагаете другим делать так же. Лучше научитесь делать проекты так, чтобы порядок включения хедеров не влиял на его работоспособность. ЗЫ и для общего развития - CMSIS это в первую очередь стандарт от Vit(12 знак., 07.11.2013 11:02, ссылка)
- ...не говоря уже о том, что для этого не стоило регистрировать еще один ник :)) - MBedder(07.11.2013 10:48)
- Без регистрации действует ограничение на количество сообщений - _keil(07.11.2013 10:51)
- Не прикидывайся - у тебя уже был зарегистрированный ник и ты с него успешно писал, а теперь зарегистрировал еще один и пишешь из-под него - MBedder(07.11.2013 10:57)
- Будте любезны - снизьте злоупотребление указателями на указатель. Определяйте явно - _keil(07.11.2013 11:00)
- Не снижу. Некогда определять явно - сам все прекрасно знаешь. - MBedder(08.11.2013 00:40)
- Будте любезны - снизьте злоупотребление указателями на указатель. Определяйте явно - _keil(07.11.2013 11:00)
- Не прикидывайся - у тебя уже был зарегистрированный ник и ты с него успешно писал, а теперь зарегистрировал еще один и пишешь из-под него - MBedder(07.11.2013 10:57)
- Без регистрации действует ограничение на количество сообщений - _keil(07.11.2013 10:51)
- Я ничего не путаю. Ваша иллюзия. "standard peripheral library" не использую. CMSIS строго с сайта производителя кристалла. - _keil(07.11.2013 10:50)
- Вы просто даже не понимаете, о чём я говорю. Так же как путаете CMSIS и stdlib. - Vit(07.11.2013 10:42)
- Порядок включения хедеров может знать только iar? Остальные даже не догадываются, что сначала #define, затем #ifdef ? st не знает что производит? А iar знает? И все говнокодят, кроме iar? Ну-ну - _keil(07.11.2013 10:10)
- Не передёргивайте - чем я пользуюсь Вы не знаете. Если порядок включения хедеров может развалить проект, то это ГОВНОКОД - Vit(07.11.2013 09:37)
- Это Ваш выбор. Пользоваться оригиналом или копией. Родным или 'интегрированным' cmsis - _keil(07.11.2013 09:30)
- Это из разряда вредных советов. IMNHO. Либо скопировать в проект и надругаться перед одной строчкой разбора семейств, либо вписать глобальную переменную проекта, что предпочтительнее. - Vit(07.11.2013 09:27)
- Он как раз и описан этажом выше! Сначала #define "СемействоВыбранноеВами", потом "#include stm32f10x.h core_cm3.h core_cm3.c system_stm32f10x.h system_stm32f10x.c а также startup_stm32f10x_ld_vl.s", ну может какой #include stdlib по вкусу. И не _keil(180 знак., 07.11.2013 09:25)
- Или один раз в свойствах проекта сделать глобальный дефайн - Vit(07.11.2013 00:11)
- Вот это говнокод! Кошмар! - FDA(07.11.2013 11:17)
- Сорри! Конечно добавить #include stm32f10x.h core_cm3.h core_cm3.c system_stm32f10x.h system_stm32f10x.c а также startup_stm32f10x_ld_vl.s ОДИН раз, но в правильном поряде. ПРОФИТ! - _keil(07.11.2013 00:08)
- А вот и нихера. Если родные файлы не трогать (а их лучше не трогать), то замахаешься выстраивать хедеры по нужному порядку включения. Ну а с EFM32 и такой строчкой уколхозить не получается - скомпилить скомпилится, а дальше болт - Vit(07.11.2013 00:02)
- Просто #define STM32F10X_LD_VL в начале и фсё! Не стоит ждать милостей от природы, взять их - наша задача (c) - _keil(06.11.2013 23:59)
- startup_stm32f10x_ld_vl.s заботливо и неявно подключил компилятор. То, что Вы его не набрали явно, не означает, что его нет - Keil(06.11.2013 22:03, )
- Такой файл в папке IAR есть. Глянул внутренности, там нет настройки тактирования. Опять непонятки, кто же тактирование настраивает? - Леонид Иванович(06.11.2013 22:13)
- Вы ищете не то и не там. Тактирование настраиваете Вы или не настраиваете если достаточно hsi. Качните Reference Manual _keil(196 знак., 06.11.2013 22:52)
- Внутри system_stm32f10x.с есть настройка тактирования. Как этот файл правильно использовать? - Леонид Иванович(06.11.2013 23:01)
- Файлы CD00246267.pdf и stm32f10x.h должны стать наиболее читаемыми и попрёт со страшной силой! - _keil(06.11.2013 23:13)
- Это базовая настройка, которая не должна привлечь внимание. А вот stm32f10x.h нужен будет постоянно - содержит много полезного, например #define RCC_CFGR_PLLMULL ((uint32_t)0x003C0000) - _keil(06.11.2013 23:11)
- Внутри system_stm32f10x.с есть настройка тактирования. Как этот файл правильно использовать? - Леонид Иванович(06.11.2013 23:01)
- Вы ищете не то и не там. Тактирование настраиваете Вы или не настраиваете если достаточно hsi. Качните Reference Manual _keil(196 знак., 06.11.2013 22:52)
- Такой файл в папке IAR есть. Глянул внутренности, там нет настройки тактирования. Опять непонятки, кто же тактирование настраивает? - Леонид Иванович(06.11.2013 22:13)
- Target - только для 'встроенного' cmsis. Рекомендую cmsis специально качать с st.com и явно включать в проект. В этом сценарии нет иного способа отличить скажем stm32f100 от stm32f107 кроме как #define STM32F10X_LD_VL - Keil(06.11.2013 22:01, )
- Я пользуюсь встроенным CMSIS. Зачем качать? - Леонид Иванович(06.11.2013 22:14)
- блин, да один раз набрать. Вам больше заняться нечем как искать обход подобной ерунды? - koyodza(06.11.2013 21:37)
- Некрасиво, что два раза нужно в разных местах задавать одно и то же - тип процессора. Неужели никто не автоматизировал? Я в шоке. - Леонид Иванович(06.11.2013 21:46)
- Посмотрите внимательнее. Под LPC автоматизировано, при выборе таргета определяется нужный дефайн. Под Stm32 я перешел на gcc, но вряд ли в iar для LPC и STM будут делать принципиально отличающиеся настройки проекта. - 3m(06.11.2013 21:52)
- по факту у меня есть проекты, где не одно и то же. Эти проекты работают на разных МК. Не принципиально разных типа F1 и F4, но например на F100 и F103, которые всё же много чем отличаются - koyodza(06.11.2013 21:49)
- Хм, оказывается, всё еще сложнее. А для каких целей Вам пришлось указывать разные процессоры в разных местах? Нельзя было, скажем, для старшего скомпилировать? - Леонид Иванович(06.11.2013 21:51)
- Нельзя. Ибо они очень разные по начинке! Поищите фразу #ifdef STM32F10 в файле stm32f10x.h и увидите - Keil(06.11.2013 22:27, )
- если в проекте указать 100, а не 103, то в кейле недоступна удобная отладка периферии. А стартап вообще доработанный получился, потому что некоторые вектора прерываний у них разные. Но на начальном этапе Вам это не нужно koyodza(38 знак., 06.11.2013 21:56)
- А где правильно настраивать тактирование, в файле стартапа или в своем исходнике? Меня смущает, что я не знаю, на каком генераторе сейчас работает процессор. - Леонид Иванович(06.11.2013 22:01)
- Можно накатать мигалку на 1 секунду расчетную, залить+запустить F8, замерять секундомером, провести обратный перерасчет... - Vit(06.11.2013 23:12)
- Уже понял, что без подключенного Леонид Иванович(1688 знак., 06.11.2013 23:45)
- Не мусор. Видна конкретная настройка. Просто примите как данность содержимое "system_stm32f10x.c" и не редактируйте его. Получите работоспособный проц с тактированием HSI. Почитайте "reference manual" и напишите код в начале main(), активирующий _keil(97 знак., 06.11.2013 23:54)
- Написал вот такое включение PLL: Леонид Иванович(1005 знак., 07.11.2013 01:03)
- Прикольно, если PLL тактирую от HSE когда вынимаю кварц - LED начинает мигать медленно. Вставляю обратно - снова мигает быстро. Кто это так делает? В софте ничего такого нет. Шайтан. - Леонид Иванович(07.11.2013 01:55)
- Во многих МК есть Clock Failure Monitor, переключающий тактирование на встроенный RC-генератор при потере внешнего клока. В dsPIC/PIC24 он активирован по умолчанию, а отключается либо программно, либо конфигурационным фузом. Про STM я не в курсе - MBedder(07.11.2013 03:13)
- Clock security system (CSS) его фамилие. plainuser(133 знак., 07.11.2013 13:06)
- Ну я же говорил - вон мужик в пиджаке, а вот дерево!(с) :)) - MBedder(07.11.2013 18:05)
- Clock security system (CSS) его фамилие. plainuser(133 знак., 07.11.2013 13:06)
- Во многих МК есть Clock Failure Monitor, переключающий тактирование на встроенный RC-генератор при потере внешнего клока. В dsPIC/PIC24 он активирован по умолчанию, а отключается либо программно, либо конфигурационным фузом. Про STM я не в курсе - MBedder(07.11.2013 03:13)
- Прикольно, если PLL тактирую от HSE когда вынимаю кварц - LED начинает мигать медленно. Вставляю обратно - снова мигает быстро. Кто это так делает? В софте ничего такого нет. Шайтан. - Леонид Иванович(07.11.2013 01:55)
- Написал вот такое включение PLL: Леонид Иванович(1005 знак., 07.11.2013 01:03)
- Я ж написал как выкинуть:) - Vit(06.11.2013 23:51, ссылка)
- там для разных МК. Большая часть из этого не компилируется для выбранного типа МК. Кое-что из того, что компилируется, но не используется, может не линковаться - koyodza(06.11.2013 23:47)
- Не мусор. Видна конкретная настройка. Просто примите как данность содержимое "system_stm32f10x.c" и не редактируйте его. Получите работоспособный проц с тактированием HSI. Почитайте "reference manual" и напишите код в начале main(), активирующий _keil(97 знак., 06.11.2013 23:54)
- Уже понял, что без подключенного Леонид Иванович(1688 знак., 06.11.2013 23:45)
- Если речь о stm32f100c4, то hsi 8 MHz. Нужно больше? Включите PLL. Почитайте официальный даташит, там описаны RCC->CFGR и RCC->CR - Keil(06.11.2013 22:36, )
- Два пути - писать свой init() или пользоваться API от st. Главное - не забывайте включать тактирование перед настройкой. Например, RCC->APB1ENR|=RCC_APB1ENR_PWREN; - Keil(06.11.2013 22:31, )
- это вопрос типа как надо делать: красиво или быстро. Каждый делает по-своему koyodza(1125 знак., 06.11.2013 22:08 - 22:15)
- А что делать при неудачном включении тактирования? - Леонид Иванович(07.11.2013 00:03)
- Уж точно не подключать внешний генератор и перешивать фьюзы! Достаточно ресет и убрать неудачный код. Снова получите голый HSI - _keil(07.11.2013 00:19)
- это от функционала прибора зависит. Если Вы о БП, то там можно работать от HSI на 8МГц и вообще не трогать тактирование. Для работы UART кварц не нужен, стабильности внутреннего генератора достаточно koyodza(136 знак., 07.11.2013 00:06)
- Если PLL тактировать от HSI, тогда, вроде, достаточно этого: Леонид Иванович(461 знак., 07.11.2013 01:35)
- Только я бы писал CFGR = (CFGR & ~CFGR_SW) | CFGR_SW_PLL; Так биты SW в регистре CFGR не будут кратковременно сброшены в 0. В данном случае это ничем не грозит, но вообще говоря может стать источником проблемы. - йцукен(07.11.2013 20:22, )
- Можно подробнее, почему в этом случае не грозит, и в других случаях будут проблемы? - Леонид Иванович(07.11.2013 22:44)
- Ну представьте, что вы собирались перейти с HSE на PLL, при этом первой строчкой временно перешли на HSI, а он выключен. Тогда ядро остановится, и до второй строчки дело не дойдёт. В данном случае это мнимая угроза, потому что, если я правильно йцукен(268 знак., 08.11.2013 13:13, )
- В кратковременном переключении на HSI ничего страшного не вижу. Но если Вы решите выполнить полный код более одного раза, возникнет коллизия - PLL уже используется, а Вы принудительно ей пытаетесь поменять множитель. Пусть и кратковременно. - _keil(08.11.2013 05:00)
- Можно подробнее, почему в этом случае не грозит, и в других случаях будут проблемы? - Леонид Иванович(07.11.2013 22:44)
- Понимаю while(77){} - оно специально для посмеяться при чтении, а вот (xxx == 0) под while ненавижу - Vit(07.11.2013 01:52)
- (xxx == 0) гораздо нагляднее, чем (!xxx), хоть и длиннее. - Леонид Иванович(07.11.2013 02:14)
- Это не C# с жесткой типизацией. Никак не нагляднее - просто выпендрёж, но заставляет сломать моск к концу чтения. Ничего личного. Vit(328 знак., 07.11.2013 08:50 - 09:06)
- Никогда не напишу a.b = !!(xxx);, ибо if(xxx) a.b = 1; else a.b = 0; наглядней. Первое - действительно выпендрёжь. - Леонид Иванович(07.11.2013 12:50)
- Для таких вещей можно использовать тернарную условную операцию Ruslan(27 знак., 07.11.2013 16:16)
- Часто использую. Хотя if читабельней. - Леонид Иванович(07.11.2013 16:23)
- false == 0. while((x&y)==false){} это песец моску. конструкция, вызывающая рвотный рефлекс - Vit(07.11.2013 15:32)
- Для таких вещей можно использовать тернарную условную операцию Ruslan(27 знак., 07.11.2013 16:16)
- Никогда не напишу a.b = !!(xxx);, ибо if(xxx) a.b = 1; else a.b = 0; наглядней. Первое - действительно выпендрёжь. - Леонид Иванович(07.11.2013 12:50)
- Это не C# с жесткой типизацией. Никак не нагляднее - просто выпендрёж, но заставляет сломать моск к концу чтения. Ничего личного. Vit(328 знак., 07.11.2013 08:50 - 09:06)
- (xxx == 0) гораздо нагляднее, чем (!xxx), хоть и длиннее. - Леонид Иванович(07.11.2013 02:14)
- Только я бы писал CFGR = (CFGR & ~CFGR_SW) | CFGR_SW_PLL; Так биты SW в регистре CFGR не будут кратковременно сброшены в 0. В данном случае это ничем не грозит, но вообще говоря может стать источником проблемы. - йцукен(07.11.2013 20:22, )
- Если PLL тактировать от HSI, тогда, вроде, достаточно этого: Леонид Иванович(461 знак., 07.11.2013 01:35)
- А что делать при неудачном включении тактирования? - Леонид Иванович(07.11.2013 00:03)
- Можно накатать мигалку на 1 секунду расчетную, залить+запустить F8, замерять секундомером, провести обратный перерасчет... - Vit(06.11.2013 23:12)
- А где правильно настраивать тактирование, в файле стартапа или в своем исходнике? Меня смущает, что я не знаю, на каком генераторе сейчас работает процессор. - Леонид Иванович(06.11.2013 22:01)
- Хм, оказывается, всё еще сложнее. А для каких целей Вам пришлось указывать разные процессоры в разных местах? Нельзя было, скажем, для старшего скомпилировать? - Леонид Иванович(06.11.2013 21:51)
- Некрасиво, что два раза нужно в разных местах задавать одно и то же - тип процессора. Неужели никто не автоматизировал? Я в шоке. - Леонид Иванович(06.11.2013 21:46)
- С EFM32 в Keil нужно аналогичный дефайн задавать в свойствах проекта, но не для семейства, а просто для того же проца:) Можно обратиться в саппорт и за умеренную плату они сбецают генерилку. Я так думаю:) Vit(102 знак., 06.11.2013 23:57)
- Я хочу просто выбирать Target и не набирать ручками #define STM32F10X_LD_VL. При выборе Target наверняка определяется какой-то символ, неужели никто не автоматизировал включение STM32F10X_LD_VL? Леонид Иванович(99 знак., 06.11.2013 21:34)
- В CooCox автоматизировано. Vit(1693 знак., 06.11.2013 20:59)
- Попробуйте Какос. он весь проект раскладыват по полочкам, CMIS, startup, libs etc // ps не знаю как иар. - RED_DRAGON(06.11.2013 20:54)
- в иаре cmsis и startup спрятаны (по дефолту подключаются стандартные иаровские либы). Можно заменить на свои, но это дополнительные телодвижения. 3m(182 знак., 06.11.2013 21:38)
- тогда уж лучше EmBlocks :) - rip(06.11.2013 21:36, ссылка)
- У IARa есть примеры, там всё вроде прозрачно. Компилится сходу и работает так-же. Это я про настройку тактирования. Кстати в файле system_stm32f10x.с Это и делается. Менял константы - меняются частоты, проверено. - UraGun(06.11.2013 20:45)
- Файл system_stm32f10x.с среди файлов проекта не фигурирует. Как и где его нужно подключать? И почему тогда у меня светодиод мигает? - Леонид Иванович(06.11.2013 21:18)
- IAR имеет свою, не обязательно свежую, копию cmsis. То, что Вы не написали явно #include "system_stm32f10x.c" в main.c или в дереве сопутствующих файлов не означает, что в одном из *.h или *.c 'встроенного' cmsis 'искаропки' нет конструкции Keil(30 знак., 06.11.2013 21:52, )
- Файла system_stm32f10x.c у меня нет вообще. - Леонид Иванович(06.11.2013 21:59)
- Вы же не зря указывали target! Компилятор позаботился - Keil(06.11.2013 22:13, )
- find / -name "system_stm32f10x.c" - Keil(06.11.2013 22:12, )
- Нашел такой файл только в скачанной CMSIS. Как его подключать? Там в примере нашел, что SystemInit() вызывают вручную в начале main(). Надо ли это делать? - Леонид Иванович(06.11.2013 22:44)
- Подключать через #include, либо в левую колонку ide. Как больше нравится. По мне так первый вариант. - _keil(06.11.2013 23:25)
- Не вызывайте SystemInit(), он обработается до Вашего main(). Лучше напишите свой init(), который позовёте в своём main() и настроите периферию в соответствии с конкретными потребностями - _keil(06.11.2013 23:23)
- Нашел такой файл только в скачанной CMSIS. Как его подключать? Там в примере нашел, что SystemInit() вызывают вручную в начале main(). Надо ли это делать? - Леонид Иванович(06.11.2013 22:44)
- Файла system_stm32f10x.c у меня нет вообще. - Леонид Иванович(06.11.2013 21:59)
- Возможно потому, что конфигурирование так и небыло произведено, а камень работает на частоте кварца ? - UraGun(06.11.2013 21:36)
- Кто его знает, на какой частоте он работает. Мне бы для начала startup найти. У AVR таких проблем не было, про startup ничего знать не надо было. - Леонид Иванович(06.11.2013 21:49)
- Работает от HSI, пока Вы не определили другое. AVR требовал тщательного чтения "reference manual" чтобы в своем init() случайно не записать попутно с нужными битами в очередной конфигурационный регистр чего лишнего. С ARM проще - периферия не _keil(66 знак., 06.11.2013 23:45)
- Попробуйте в крайнем случае вывести тактовую частоту просто на вывод МСО1 или МСО2 и измерить. Решение конечно кривое, но раз уж Вы так принципиальны :) или можно сравнить содержимое какого-нить регистра конфигурации генератора с нужным Вам UraGun(228 знак., 06.11.2013 21:54)
- Кто его знает, на какой частоте он работает. Мне бы для начала startup найти. У AVR таких проблем не было, про startup ничего знать не надо было. - Леонид Иванович(06.11.2013 21:49)
- iar его автоматом подключает из своих папок. - 3m(06.11.2013 21:32)
- А где startup посмотреть? - Леонид Иванович(06.11.2013 21:45)
- IAR имеет свою, не обязательно свежую, копию cmsis. То, что Вы не написали явно #include "system_stm32f10x.c" в main.c или в дереве сопутствующих файлов не означает, что в одном из *.h или *.c 'встроенного' cmsis 'искаропки' нет конструкции Keil(30 знак., 06.11.2013 21:52, )
- только исключительные ситуации в процессе настройки генератора там толком не обрабатываются - koyodza(06.11.2013 20:59)
- Всё правильно, наш девиз "Если мёд - то ложкой !" - UraGun(06.11.2013 21:08)
- Файл system_stm32f10x.с среди файлов проекта не фигурирует. Как и где его нужно подключать? И почему тогда у меня светодиод мигает? - Леонид Иванович(06.11.2013 21:18)
- Книженция, мб ранее пробегала. издание 13го года - RED_DRAGON(09.11.2013 01:16, ссылка)