Хотелось бы урок по настройке частоты. Почти во всех видео нажимаете на вкладку "Clock Configuration". Почему там иногда нужно менять частоту, как узнать что её нужно менять? Как в настройках таймера считается частота и т.п. К примеру, был урок недавно по ШИМ со светодиодами, сделал всё так же, но светодиод плавно загорался и резко потухал. Потом специально изменил частоту как на видео и всё заработало, до этого стояло всё по умолчанию. Конечно, статьи есть и даже видео по настройке этого всего, но это как минимум идея для одного из следующих видео:) За урок спасибо! Было бы неплохо говорить в каждом последующем видео о том, что может понадобиться. Т.е. вдруг следующее видео будет про дисплей, энкодер или ещё чего-то. Так будет возможность приобрести и заниматься. Ну а там смотрите сами, быть может это и лишнее. Канал отличный, хотелось бы чтобы он развивался.
+Сергей Аксенов 1. Частота настраивается в зависимости от ситуации. Нужно смотреть в зависимости от того, какой именно интерфейс мы используем и на какой шине он находится(AHB1, AHB2,APB1,APB2 или отдельная собственная, как например для USB). Затем также учитываем, какую частоту граничную может поддержать какая-то внешняя периферия, которую мы по данному интерфейсу используем, вот тогда уже и настраиваем определённую шину на определённую частоту. А все умножители и делители в rcc даны и отлично расписаны в Reference Manual, поэтому, я считаю всё-таки что общий какой то урок по частоте не требуется, а именно требуется объяснение настройки частоты в какой то частной ситуации. 2. Светодиод резко может потухать не из-за частоты, а только из-за неправильного кода, как у меня сначала было в занятии, потом когда всё поправилось, всё стало плавно) 3. Спасибо Вам так же за высокую оценку моего труда! 3а. Анонсы когда именно выйдет следующее видео я размещаю во всех трёх социальных сетях в группах, ссылки в описании под видео. В принципе из названия следующего урока видно, что именно потребуется. Но тем не менее я учту Ваше пожелание и буду расписывать в анонсе поконкретнее. Ещё раз огромное спасибо за интерес к моим занятиям!
Сергей Аксенов ну может быть, у меня сразу всё работало. Отлично, что сами догадались, что нужно отрегулировать частоту. Кстати для следующего занятия, которое выйдет завтра 10 мая в 14.00 по московскому времени, потребуется переходник TTL-to-USB. А для занятия, которое выйдет ещё через сутки (11 мая в 14-00) потребуется ещё и дисплей LCD такой же, который мы использовали в 6 и 7 занятии.
Interrupt_Count++; if(Interrupt_Count>3)Interrupt_Count=0; /* USER CODE END TIM6_DAC_IRQn 1 */ } Так же целесообразно в главном цикле main.c в подцикле for сделать for(i=0; i
спасибо за урок! может уже не актуально, но у меня такое предложение, что б предделитель прям в main.c менять, так быстрее. и хотел бы спросить, при таком подключении можно еще и яркостью цифр управлять? то есть прерывания + ШИМ одновременно. интересует управление именно через общие ноги (у Вас аноды).
Спасибо за уроки! Владимир, немного не по теме,но как с помощью библиотеки HAL (или может LL) использовать битовую маску для порта? Тоесть вывести на ножки 16-ти битового порта значение, чтобы каждый пин пора представлял свой разряд. Например: 1 = 0b0000000000000001 (устанавливаем высокий уровень на нулевом пине); 65535 = 0b1111111111111111 (выставляем все пины в единицу) и т.д. Понимаю как это сделать с помощью функций SET, RESET отдельных пинов, но может быть, есть какая нибудь спициальная для этого функция. Спасибо.
У меня подобная схема не заработала по причине того, что на выходах уровень 1 равен 2,95V, этого недостаточно для того, чтобы закрыть транзисторы. Индикатор светится все время. Пробовал токо-ограничительный резистор включать в цепь эмитора, все равно уровня 1 мало.
Тогда бы это не был HAL и код бы потерял универсальность. При переносе на другой контроллер он возможно перестал бы работать, для чего и был (вернее была) придуман HAL.
Владимир, огромное вам спасибо за данные уроки!
Большое спасибо за уроки !!!
Хотелось бы урок по настройке частоты. Почти во всех видео нажимаете на вкладку "Clock Configuration". Почему там иногда нужно менять частоту, как узнать что её нужно менять? Как в настройках таймера считается частота и т.п.
К примеру, был урок недавно по ШИМ со светодиодами, сделал всё так же, но светодиод плавно загорался и резко потухал. Потом специально изменил частоту как на видео и всё заработало, до этого стояло всё по умолчанию. Конечно, статьи есть и даже видео по настройке этого всего, но это как минимум идея для одного из следующих видео:)
За урок спасибо! Было бы неплохо говорить в каждом последующем видео о том, что может понадобиться. Т.е. вдруг следующее видео будет про дисплей, энкодер или ещё чего-то. Так будет возможность приобрести и заниматься. Ну а там смотрите сами, быть может это и лишнее. Канал отличный, хотелось бы чтобы он развивался.
+Сергей Аксенов
1. Частота настраивается в зависимости от ситуации. Нужно смотреть в зависимости от того, какой именно интерфейс мы используем и на какой шине он находится(AHB1, AHB2,APB1,APB2 или отдельная собственная, как например для USB). Затем также учитываем, какую частоту граничную может поддержать какая-то внешняя периферия, которую мы по данному интерфейсу используем, вот тогда уже и настраиваем определённую шину на определённую частоту. А все умножители и делители в rcc даны и отлично расписаны в Reference Manual, поэтому, я считаю всё-таки что общий какой то урок по частоте не требуется, а именно требуется объяснение настройки частоты в какой то частной ситуации.
2. Светодиод резко может потухать не из-за частоты, а только из-за неправильного кода, как у меня сначала было в занятии, потом когда всё поправилось, всё стало плавно)
3. Спасибо Вам так же за высокую оценку моего труда!
3а. Анонсы когда именно выйдет следующее видео я размещаю во всех трёх социальных сетях в группах, ссылки в описании под видео. В принципе из названия следующего урока видно, что именно потребуется. Но тем не менее я учту Ваше пожелание и буду расписывать в анонсе поконкретнее.
Ещё раз огромное спасибо за интерес к моим занятиям!
+narod stream не не, светодиод именно из-за частоты, код проверял от и до. Потом в кубе изменил частоту и прошил МК - всё заработало как надо.
Сергей Аксенов
ну может быть, у меня сразу всё работало. Отлично, что сами догадались, что нужно отрегулировать частоту.
Кстати для следующего занятия, которое выйдет завтра 10 мая в 14.00 по московскому времени, потребуется переходник TTL-to-USB. А для занятия, которое выйдет ещё через сутки (11 мая в 14-00) потребуется ещё и дисплей LCD такой же, который мы использовали в 6 и 7 занятии.
+narod stream Спасибо, стали придерживаться совета, надеюсь, это также прибавит вашему каналу подписчиков.
Большое спасибо)
Благодарю за уроки, усовершенствовал обработчик прерывания теперь незначащие старшие ноли гасятся: if((Interrupt_Count==0)&&(Digit_4!=0))
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_6, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5, GPIO_PIN_RESET);
segchar(Digit_4);
}
else HAL_GPIO_WritePin(GPIOE, GPIO_PIN_6, GPIO_PIN_RESET);
if((Interrupt_Count==1)&&(Digit_3|Digit_4!=0))
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_6, GPIO_PIN_RESET);
segchar(Digit_3);
}
else HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET);
if((Interrupt_Count==2)&&(Digit_2|Digit_3|Digit_4!=0))
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_6, GPIO_PIN_RESET);
segchar(Digit_2);
}
else HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4, GPIO_PIN_RESET);
if(Interrupt_Count==3)
{
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6, GPIO_PIN_RESET);
segchar(Digit_1);
}
Interrupt_Count++;
if(Interrupt_Count>3)Interrupt_Count=0;
/* USER CODE END TIM6_DAC_IRQn 1 */
} Так же целесообразно в главном цикле main.c в подцикле for сделать for(i=0; i
спасибо за урок!
может уже не актуально, но у меня такое предложение, что б предделитель прям в main.c менять, так быстрее.
и хотел бы спросить, при таком подключении можно еще и яркостью цифр управлять? то есть прерывания + ШИМ одновременно. интересует управление именно через общие ноги (у Вас аноды).
Отличный канал! всем рекомендую подписаться))))
Спасибо
Есть ли особенности настройки таймеров для других чипов? Например STM32F030F4 и TIM14?
Спасибо, за уроки. Не в тему: Вы почему то у меня с Леонидом Броневым ассоциируетесь )
"А Вас, Штирлиц, я попрошу остаться" - теперь так буду уроки начинать. Гы, гы.
Спасибо за уроки! Владимир, немного не по теме,но как с помощью библиотеки HAL (или может LL) использовать битовую маску для порта? Тоесть вывести на ножки 16-ти битового порта значение, чтобы каждый пин пора представлял свой разряд. Например: 1 = 0b0000000000000001 (устанавливаем высокий уровень на нулевом пине); 65535 = 0b1111111111111111 (выставляем все пины в единицу) и т.д. Понимаю как это сделать с помощью функций SET, RESET отдельных пинов, но может быть, есть какая нибудь спициальная для этого функция. Спасибо.
Это надо библиотеку писать. Я не заморачивался. Посмотрите, как это выполнено в Atmel Studio.
У меня подобная схема не заработала по причине того, что на выходах уровень 1 равен 2,95V, этого недостаточно для того, чтобы закрыть транзисторы. Индикатор светится все время. Пробовал токо-ограничительный резистор включать в цепь эмитора, все равно уровня 1 мало.
С подключением напутал.
в регистр ODR ,и не писать длинную функцию и каждый пин устанавливать командой set и reset
Ответил выше.
А если ещё быстрее, то каждый регистр имеет адрес, можно по адресу нахождения регистра занести число с помощью ассемблерной команды.
а не проще было бы напрямую в регистр выхода порта записывать ,код бы сократился)
Тогда бы это не был HAL и код бы потерял универсальность. При переносе на другой контроллер он возможно перестал бы работать, для чего и был (вернее была) придуман HAL.