Например TDA7294

Форум РадиоКот • Просмотр темы - Мигать светодиодом. ARM или не-ARM?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт сен 09, 2025 02:01:40

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3623 ]    , , 3, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Чт июн 26, 2014 07:09:51 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3744
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Вот еще инфа по семинарам о STM32F4. Завтра (по местному) посещу такой в Миннеаполисе. ST совмемстно с Avnet их каждый год проводит в нескольких местаx.p
http://www.em.avnet.com/en-us/design/trainingandevents/Pages/STMicroelectronics-STM32-Seminars.aspx


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Чт июн 26, 2014 08:16:51 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Вот и разница (как в сказке):
Цитата:
Каждый участник получит комплект бесплатно STM32F401 Discovery.

ждем отчета


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Пт июн 27, 2014 07:27:44 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3744
Рейтинг сообщения: 4
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Отчитываюсь: в общем, было здорово. Это мой четвертый семинар с ST и самый лучший. В прошлом году тоже посетил семинар по STM32F429, но он прошел как-то скомкано, хотя лектор был тот-же самый. Может потому что тема графических драйверов под F429 требует больше времени, или у меня в этом опыта маловато, но как-то мало удалось железки руками пощупать под чутким руководством профессионалов и в коде удовлетворительно разобраться. Там тоже подарили демо-плату под F429, код был написан под SPL но как-то я в него не успел вникнуть как хотелось-бы. Разработка тогда была под IAR. В этот раз все было под Keil и посвящено DSP Audio. Вместо SPL использовали более новый подход, основанный на HAL и разработка его была под системой STM32CubeMX, простота работы с которой народ приятно впечатлила. Привез с семинара демо-плату для F401 и наушники, качество звука на ней меня потрясло не менее качества графики в прошлом году, а может даже и больше. Демо-программы, включая 10-полосный эквалайзер работали просто на ура. Правда, лектор признался, что эти демо-программы разрабатывала группа DSP экспертов фирмы для какой-то выставки. Не скажу, что я на этот раз в коде все понял, но начало положено. Кроме того, кормили завтраком и ланчем лучше - тоже приятно. Вот несколько фоток с семинара.
СпойлерИзображение Изображение Изображение Изображение

Здесь можно загрузить слайды презентации (~180 слайдов, около 11 МБ)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Пт июн 27, 2014 08:42:09 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Спасибо - очень познавательно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Пт июн 27, 2014 17:34:49 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 156
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Ser60 писал(а):
Вместо SPL использовали более новый подход, основанный на HAL


Мля ... этот HAL лицезреть где либо можно? Или STM пошли по идиотскому пути , закрыв либы ?

....
....

О боже ... Это та срань что генерит куб ? :)))
Это та же SPL, мало того теперь хомячки будут ее генерить тыканьем кнопок в кубе .
Да уж прогресс ... :))) :))) :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Пт июн 27, 2014 19:03:22 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Да уж куб нагенерил - настройка одного таймера и RTC с прерываниями - после компиляции:
Program Size: Code=4096 RO-data=256 RW-data=24 ZI-data=1120
Зато сделал рабочий проект для Keil - у многих с этим трудности. Можно закоментировать #include "stm32f0xx_hal.h" и нету HALа - далее напрямую с железом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Пт июн 27, 2014 19:25:51 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
dosikus писал(а):
Мля ... этот HAL лицезреть

HAL это гемор SPL в Кубе... :)))

oleg110592 писал(а):
Да уж куб нагенерил - настройка одного таймера и RTC с прерываниями - после компиляции:
Program Size: Code=4096 RO-data=256 RW-data=24 ZI-data=1120

Да уж... впечатляет... :facepalm:
Ты уж нас держи в курсе всех ново-извращений STM...
А как там с гибкостью настройки периферии... или в наличии только основное??? Хуже чем с SPL??? (лень ставить/смотреть)...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Пт июн 27, 2014 22:46:52 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3744
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Олег, еще раз спасибо за наводку на демо-плату от Cypress выше в этой теме. Получил ее, пойграюсь. Люблю на сон грядущий про новенькое почитать.
СпойлерИзображение Изображение

А насчет HAL, я сам больше люблю напрямую с железом пообщаться. Медленно, вдумчиво, и размеренно. Однако, насколько я понял, HAL становится стандартным подходом у многих производителей. В апреле и мае я посетил еще 2 аналогичных семинара (BlueTooth LE от Anaren и общий семинар TI с докладами на разные темы) и везде был свой HAL. Да и судя по разговорам с участниками семинаров, работающих в разных фирмах и использующие их продукцию - многие работают с HAL. Скорость выпуска продукции на рынок и гибкость ее адаптации под разные типы МК и прочего железа - одни из основных факторов. Куб, в частности генерирует код где есть зоны для вставки кода пользователя, которые куб гарантированно не будет трогать при переходе на другую модель МК в пределах фирмы. Я не агитирую всех переходить на SPL или HAL, каждый решит это для себя. Похоже, развитие софта для микроконтроллеров начинает идти по тому-же пути, что и для компьютеров. Вы когда-нибудь смотрели, например, на код для GUI, генерируемый Visual Studio? Или драйверы под видеокарты и другое железо, занимающие десятки мегабайт - неужели нельзя было сделать короче и каждая инструкция там действительно важна? Вопросы, конечно, риторические.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 06:37:15 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Чтобы оценить сложность работы c микроконтроллерами на ядре ARM, в сравнении с другими микроконтроллерами, попробуем написать часы наподобие ув. BOB51, тему которого я так испоганил (тема уже подчищена - спасибо модератору). Только часы будем делать на светодиодном индикаторе (как и положено часам, шобы издалека видно было) и программу писать на Си, пока с использованием великого и ужасного HAL, (потом можно будет написать и без, но интересно чем так страшен этот HAL). Для начала возьмем рядовой микроконтроллер STM32F051C6T6, 48 ножек, корпус LQFP48, 32K FLASH , 8K RAM. Покупаем недорого у нашей жлобской конторы на радиорынке (от 1 шт 26,75 Грн.). Избыточно, но потом (в серийном изделии :) ) можно применить более дешевый STM32F030C6 (цена тут посмотреть: http://ru.farnell.com/stmicroelectronic ... dp/2393632) или в меньшем корпусе еще дешевле. Ближайший конкурент из старичков, например Atmel AVR - ATmega324PA-AU (хотя бы по по размеру FLASH 32K, правда 2K RAM), стоит от 1 шт 36,75 Грн. Разницу в цене используем в личных целях - выпить там пивка иль 100 грамм - должно хватить ;).
Сам микроконтроллер припаяем на отладочную плату, файлы которой в формате Eagle были найдены на просторах (не помню где - спасибо автору). Такая плата - односторонняя, может быть сделана утюжной технологией. Плата была сделана под микроконтроллер STM32F100, но нам пойдет, правда пара пинов порта F попало на питание (35 и 36 нога) - обойдемся, ног и так избыток.
Спаяв плату мы получим практически макро микросхему в DIP корпусе (всеми новичками любимом), которую можно втыкать типа в панельку многократно, только ноги у нас покрепче будут.
схема:
СпойлерИзображение

вид платы:
СпойлерИзображение

Файлы Орла:
Вложение:
stm32_board.zip [191.55 KiB]
Скачиваний: 305

Индикатор светодиодный есть такой - LFD039BSR - куплено 5 штук по ошибке (женой), зато с точечками, для часов самое то.
СпойлерИзображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 10:49:12 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2922
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24066
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
oleg110592 писал(а):
и программу писать на Си, пока с использованием великого и ужасного HAL, (потом можно будет написать и без, но интересно чем так страшен этот HAL)

Олег, я заранее извиняюсь перед тобой - ты все тут правильно делаешь, однако никто не называл HAL ужасным и великим.
Не передергивай. Речь шла лишь о том, что без HAL (или SPL) работа с STM32 для новичка становится совсем не тривиальной.
А при работе с оными абстракциями - проста, но бестолкова в плане обучения. Поскольку новичок не готов понять место абстракций в архитектуре, схемотехнике и алгоритме.
Часы - это очень хорошо, но решить вслед задачу НЕ ПОДДЕРЖАННУЮ либами он никогда не сможет.
Протеус тому подтверждение.
Народ выбирает не интересную элементную базу, а ту, которая есть в моделях Протеуса...
Еще раз извини за офф.
:beer:
Продолжай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 11:03:29 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 156
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
КРАМ, ты уж извиняй нас дремучих. Но то что есть HAL (HardWare Abstraction Level) мы в курсах , где он вменяемый юзаем.
То что предоставили индусы от STM - полная бяка, и уж извиняй но юзать я сие отказываюсь. :)))
Куб - с недельку потыкаю/поиграюсь , надо же знать чем хомячки дышат, но толку от него ноль...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 11:22:06 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2922
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24066
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
И не продолжай, любезный dosikus...
Я не намерен поддерживать ни твой троллинг, ни твои комплексы.
Пусть лучше Олег делает полезное дело...
ЗЫ. Чтобы тебе быстрее остыть: я ПРИМЕНЯЮ СТМ32... :wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 11:29:21 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Цитата:
Речь шла лишь о том, что без HAL (или SPL) работа с STM32 для новичка становится совсем не тривиальной.

Для местных новичков не только стм32 а все остальное тоже не тривиально - стоит посмотреть заголовки форума, например AVR и ужаснуться:
Цитата:
.... Проблема с AVR910 (не могу прошить) PORTx сбрасываются в 0 (ATmega88PA) UART постоянно шлет мусор в TXD АЦП в ATTINY13 настройка Ищу проект часов на ATMega48 Attiny2313A-SU страшный глюк Программатор для avr uniprof неопознает atmega8a.! Не работает. Первый запуск. Помогите настроить таймер 1 на AT90USB162 Ацп (ADC0) atmega8 нуждаюсь в помощи Помогите с проектом на attiny 2313A-PU. Не работает параллельное программирование в Dragon AVR. ...

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


Последний раз редактировалось oleg110592 Вс июн 29, 2014 11:32:39, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 11:32:29 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2922
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24066
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Олег, а я с этим и не спорю.
Но нужно не обходить такие вопросы, а объяснять ПУТИ ИХ РЕШЕНИЯ.
Проблема не в незнании вообще, а в непонимании ОБЪЕМОВ этого незнания.
Либо начинающему наскучит бездумное тыканье, либо он изучит основы.
Простая архитектура в этом случае - хороший и БЛАГОДАРНЫЙ учебный полигон.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 11:53:19 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 1
Продолжим.
Что-бы приступить к программированию нарисуем схему - будет удобнее. Давно использую упрощенную посегментную индикацию - меньше деталей (заказчики вынуждают) да и лень паять 12 резисторов и 4 транзистора. Попробуем и здесь применить.
Вложение:
ClockARM_Schematic.zip [527.28 KiB]
Скачиваний: 310

Поскольку первый проект должен быть "хэлло ворлд" (мигание светодиодом) а у нас в индикаторе есть два отдельных светодиода (точечки) - будем мигать точками.
Запускаем куб. Нажимаем новый проект. Выбираем наш микроконтроллер.
СпойлерИзображение

Слева видим список внутренней периферии (впечатляет), справа наш микроконтроллер в графическом виде. Клацаем на нужных нам ногах микроконтроллера (B11 и B12) и настраиваем на вывод.
СпойлерИзображение

Идем в Configuration и жмем GPIO - делаем опять настройки.
СпойлерИзображение

Идем Clock configuration и настраиваем тактовую частоту микроконтроллера на максимум 48 МГц (за что деньги плачены) включаем PLL x 12 - круто, обгоним стареньких.
СпойлерИзображение

Идем в меню Project -> Settings настраиваем пути и имя проекта.
СпойлерИзображение

Нажимаем в меню Project -> Generate code - куб начинает думать (медленно - на джаве написан) и наконец рапортует о создании проекта и предлагает открыть - открываем, запускается Keil (или что вы выбрали). Смотрим - все красиво в проекте разложено по папкам. Компилируем - все прекрасно компилируется. Запускаем дебаг и все запускается - настроено уже сразу под STLink. И так все внутри, в том числе и порты настроены, осталось написать код для мигания:
добавим три строчки кода:
Код:
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12); // делаем единицу на В12
  //бесконечный цикл
  while (1)
  {
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_11); // инвертируем пин В11
    HAL_Delay(500); // задержка 500 мс
  }

Проверяем в железе и о чудо - все мигает. Ура.
СпойлерИзображение
Изображение

исходник:
Вложение:
Src.zip [4.44 KiB]
Скачиваний: 268

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 12:32:27 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
КРАМ писал(а):
Проблема не в незнании вообще, а в непонимании ОБЪЕМОВ этого незнания.
Либо начинающему наскучит бездумное тыканье, либо он изучит основы.
Простая архитектура в этом случае - хороший и БЛАГОДАРНЫЙ учебный полигон.

Прекращай своё старческое нытьё...
Объёмы понимания/непонимания у нормального эмбэддера присутствуют постоянно...
Как там... "Чем больше я знаю..."(С)...
Простая архитектура, как и Васик. могут просто убить желание развиваться... тогда объёмы непонимания только возрастут...
Причина простая... не было желания и смысла что-то изучать... и состояние временной эйфории лихо разбивается об стену внезапных объёмов незнания... Пример... любители Кодэвижн не могут перейти на GCC или что-то другое... устойчивые комплексы...
И потом... многие не хотят учиться ездить на велосипеде... просто идут в автошколу...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 15:09:21 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 1
Продолжим.
Многие скажут не красиво так мигать светодиодом - во время HAL_Delay(500); микроконтроллер ничего не делает, не хорошо. Исправим сей недостаток - пусть мигает в прерывании, в это время (между прерываниями) можно делать много чего полезного. Заодно настроим остальные ноги микроконтроллера.
СпойлерИзображение

Увидим, что заняв ноги мы "убили" функции I2C и функции ног таймера 3. I2C нам не пригодится, а таймеров еще немеряно. Используем тогда таймер 3 для прерываний - прерываться будем раз в 0.5 сек или 500 мс, чтоб инвертировать B11. Настраиваем таймер:
Код:
/* TIM3 init function */
void MX_TIM3_Init(void)
{
  htim3.Instance = TIM3;
  htim3.Init.Prescaler = 48000-1; // делим 48МГц на 48000 получаем 1000 Гц или 1 мс
  htim3.Init.CounterMode = TIM_COUNTERMODE_UP; // таймер считает вверх
  htim3.Init.Period = 500-1; // считать будет до 500, т.е. через 500 мс произойдет прерывание
  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; // частоту входную не делим - нам хватает
  HAL_TIM_Base_Init(&htim3);
  /*##-2- Start the TIM Base generation in interrupt mode ####################*/
  /* Start Channel1 */
  HAL_TIM_Base_Start_IT(&htim3); // настраиваем прерывания таймера 3
}

Прерывание таймера:
Код:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_11);
}

Основной цикл пока пустой - там теперь можно решать супер-пупер задачи, а точечки будут независимо мигать.
Компилируем, запускаем - опять мигает, да что же это за HAL такой - просто наХАЛ. И не надо никаких протеусов - можем остановить выполнение программы в любой момент, посмотреть регистры и много много чего, а впрочем, "это уже совсем другая история".
Пока время для конструкции выходного дня закончилось, но продолжение будет...
Вложение:
Src2.zip [4.93 KiB]
Скачиваний: 313


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 16:22:18 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Писец... беспросветный... :)))
Это ж сколько надо бестолковых букв набить...

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

и ради чего???
Но ИМХО главный ахтунг впереди... и как понять какому таймеру это принадлежит... ну совсем как бы неочевидно...
Бесплатная прокачка мусора через мозг... :facepalm:

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 18:59:04 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2922
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24066
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
HHIMERA писал(а):
Писец... беспросветный... :)))
...главный ахтунг впереди... и как понять какому таймеру это принадлежит...

Изображение Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ARM или не-ARM?
СообщениеДобавлено: Вс июн 29, 2014 22:39:43 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Цитата:
и как понять какому таймеру это принадлежит
тоже сразу зацепил этот вопрос - там в файле stm32f0xx_it.c есть обработчик:
Код:
void TIM3_IRQHandler(void)
{
  HAL_TIM_IRQHandler(&htim3);
}

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

Продолжим.
Проверим не потеряли мы ли контроль над железом - отказываемся от услуг HAL, настраиваем периферию напрямую:
Код:
//=======================
// TIM3 Interrupt Handler
//=======================
void TIM3_IRQHandler(void)
{
    if(TIM3->SR & TIM_SR_UIF) // if UIF flag is set
    {
      TIM3->SR &= ~TIM_SR_UIF; // clear UIF flag
      GPIOB->ODR ^=GPIO_ODR_11;
    }
}   

int main(void)
{
  //HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* System interrupt init*/
  //HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);

 /* GPIOB Periph clock enable */
  RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
  GPIOB->MODER |= (GPIO_MODER_MODER11_0 | GPIO_MODER_MODER12_0) ;    /* Configure PB11 and PB12 output  mode  */
  GPIOB->OTYPER &= ~(GPIO_OTYPER_OT_11 | GPIO_OTYPER_OT_12) ;   // Ensure push pull mode selected--default
  GPIOB->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR11|GPIO_OSPEEDER_OSPEEDR12);    //Ensure maximum speed setting (even though it is unnecessary)
  GPIOB->PUPDR &= ~(GPIO_PUPDR_PUPDR11|GPIO_PUPDR_PUPDR12);    //Ensure all pull up pull down resistors are disabled 
  GPIOB->BSRRL = GPIO_BRR_BR_12;     // Set
  /* TIM3 clock enable */
  RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
  TIM3->PSC = 48000 - 1;       // Set prescaler to 48000 = 48 000 000Hz/48000 = 1000 Hz = 1 ms
  TIM3->ARR = 500 - 1;         // Auto reload value 500 = 500mS
  TIM3->DIER = TIM_DIER_UIE; // Enable update interrupt (timer level)
  TIM3->CR1 = TIM_CR1_CEN;   // Enable timer
  NVIC_EnableIRQ(TIM3_IRQn); // Enable interrupt from TIM3 (NVIC level)
   
  while (1)
  {

  }
}

Проверяем - точки мигают.
Ну и в принципе непонятно, почему считается настройка периферии в стм32 сложной, по сравнению с авр пик ... Наоборот у авр и пик такой разнобой в периферии - у новичка должна кружиться голова. Недавно тут начинающий не знал, что у тини13 внутренний генератор 9.6 МГц, обычно то - 8 МГц. У MSP430, насколько помню (делал один проект, нашару даже отладчик остался), тоже нет такого безобразия.
Для примера настройка порта и таймера авр:
Спойлер
Код:
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Port B initialization
// Function: Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRB=(1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
// State: Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 7,813 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Disconnected
// Timer Period: 9,984 ms
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (0<<WGM00);
TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00);
TCNT0=0x00;
OCR0A=0x4D;
OCR0B=0x00;


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3623 ]    , , 3, , , ...  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y