Например TDA7294

Форум РадиоКот • Просмотр темы - Таймер не работает
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт окт 23, 2020 13:53:46

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


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



Начать новую тему Ответить на тему  [ Сообщений: 235 ]    , 2, , , ...  
Автор Сообщение
В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:16:28 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 0
Добавь ещё этот файл в проект. В функцию __low_level_init() перетащи инициализацию железа. Она будет до main вызываться. Сейчас у тебя вместо неё заглушка подставлена, а так вызов с пользой будет происходить.


Вложения:
low_level_init.cpp [1.02 KiB]
Скачиваний: 30
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:17:14 
Собутыльник Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 641
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2637
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
TEPEM писал(а):
Дык это еденичку в порт пишет, побитное сложение, а второй вычитание,
Не вычитание конечно. Загуглите "магические числа". Это важно, но проблема у Вас в чем то другом, скорее всего в стартапе.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:18:13 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 0
VladislavS писал(а):
Положен говоришь? А картинку посмотреть?
Откуда диззасеблер знает такие метки как HardFault? Они разве не из стартапа?
IAR сам подставляет для Cortex-M начало таблицы. Однако, обрати внимание как быстро она заканчивается!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:22:14 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
TEPEM писал(а):
Дык это еденичку в порт пишет, побитное сложение, а второй вычитание,
Не вычитание конечно. Загуглите "магические числа". Это важно, но проблема у Вас в чем то другом, скорее всего в стартапе.


Да я в курсе про и и или и инверсию, но так проще писать.

Добавлено after 1 minute 59 seconds:
Добавь ещё этот файл в проект. В функцию __low_level_init() перетащи инициализацию железа. Она будет до main вызываться. Сейчас у тебя вместо неё заглушка подставлена, а так вызов с пользой будет происходить.


Заглушка?


Вернуться наверх
 
Как сократить время вычислений и освободить ресурсы центрального процессора?

Цифровые фильтры применяются в системах цифровой обработки сигналов (ЦОС) для решения двух основных задач: разделения и восстановления сигналов. Такие задачи могут решаться программными и аппаратными методами. Для их решения удобно использовать аппаратный цифровой фильтр FMAC, входящий в состав микроконтроллеров семейства STM32G4.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:24:01 
Прорезались зубы

Карма: 4
Рейтинг сообщений: 43
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 222
Откуда: 69.Ржев
Рейтинг сообщения: 0
а второй вычитание, типа стирает ее, нога светодиода.


дык я не знаю как у тебя в первом стирает


Вернуться наверх
 
STM32L562E-DK – первая отладочная платформа ST на ядре ARM Cortex-M33

STMicroelectronics представляет демонстрационно-отладочную платформу на базе ядра Cortex-M33 – STM32L562E-DK. Данная платформа основана на микроконтроллере нового семейства – STM32L5. STM32L562E-DK позволяет разработчику в полной мере раскрыть и опробовать новые возможности микроконтроллеров STM32L5 с тщательно проработанным функционалом для обеспечения высокого уровня безопасности и защиты.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:28:00 
Собутыльник Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 641
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2637
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
TEPEM писал(а):
что это за стартап
Некий код который выполнится до майна. Он же, например, настроит тактовый генератор и сформирует вектора прерываний. А там, в том числе, кроме вектора сброса, будет данные для инициализация указателя стека. Я не знаю что делает IAR без наличия стартапа и моожет вектор сброса будет указывать на майн, потому мигалка работает :dont_know: . Но возможно, что у вас указатель стека инициализируется в никуда, раз стартапа нет, а вызов подпрограммы вызывает исключения, так как камень пытается сохранить адрес возврата в недопустимую область памяти, при возникновении прерывания.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Последний раз редактировалось Z_h_e Чт дек 05, 2019 20:33:42, всего редактировалось 2 раз(а).

Вернуться наверх
 


В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:32:22 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 1
Заглушка?
Ты такую красивую картинку выложил, сам не подозревая этого. Только читать её надо уметь - там же видно всё :)

Кстати, в стартап ещё вот такую строчку добавь где-нибудь в зоне действия extern "C".
Код:
void exit(){}


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:35:47 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
void TIM2_IRQHandler(void) не работает что то(
extern "C" void TIM2_IRQHandler(void) только так и вызывается два раза сразу, т.е. пауза - вызов, вызов - пауза и т.д.

Добавлено after 2 minutes:
Заглушка?
Ты такую красивую картинку выложил, сам не подозревая этого. Только читать её надо уметь - там же видно всё :)

Кстати, в стартап ещё вот такую строчку добавь где-нибудь в зоне действия extern "C".
Код:
void exit(){}


Спасибо Вам большое!


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:36:32 
Прорезались зубы

Карма: 4
Рейтинг сообщений: 43
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 222
Откуда: 69.Ржев
Рейтинг сообщения: 0
могу ошибаться
но вроде флаг таймера в прерывании не сразу надо сбрасывать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:38:16 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
Код:
extern "C" void TIM2_IRQHandler(void)
{
   if (i<=2)
    {
      i++;
       GPIOC->ODR |= 32768;
       //for(j = 0 ; j < 100000; j++) __NOP();
    }
     else
    {
     i=0;
       GPIOC->ODR &= ~32768;
    }
  TIM2->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF
}///*/

Так только мигает а то мили вспышки в темноте еле еле


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:42:24 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 0
Я не знаю что делает IAR без наличия стартапа
Подлянку он кидает. Вместо того чтобы ругнуться, он подставляет минимальную таблицу с правильно заполненным адресом стека и переходом на штатную точку входа. Без прерываний оно даже и работать будет. Но таблица векторов заканчивается где-то в районе SysTick_Handler, на что ТС и попался. Уж лучше было бы материться, чем тихую подлянку делать.

Добавлено after 3 minutes 14 seconds:
Так только мигает а то мили вспышки в темноте еле еле
Ты прикалываешься?
Код:
if(GPIOC->ODR&(1<<15)) GPIOC->BSRR = 1<<(15+16); else GPIOC->BSRR = 1<<15;


И да, в прерывании сначала очищаешь флаг, а потом мигаешь диодом. Сделай это привычкой, ещё не раз пригодится.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:49:50 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
Я не знаю что делает IAR без наличия стартапа
Подлянку он кидает. Вместо того чтобы ругнуться, он подставляет минимальную таблицу с правильно заполненным адресом стека и переходом на штатную точку входа. Без прерываний оно даже и работать будет. Но таблица векторов заканчивается где-то в районе SysTick_Handler, на что ТС и попался. Уж лучше было бы материться, чем тихую подлянку делать.

Добавлено after 3 minutes 14 seconds:
Так только мигает а то мили вспышки в темноте еле еле
Ты прикалываешься?
Код:
if(GPIOC->ODR&(1<<15)) GPIOC->BSRR = 1<<(15+16); else GPIOC->BSRR = 1<<15;


Вот тот же эффект, между тиками около 2с, он загорается и тухнет мгновенно, потом уже пауза и по кругу. Только зажигая на два тика он горит столько же времени сколько и пауза

Добавлено after 2 minutes 5 seconds:
Я хочу сказать что прерывание вызывается так

-пауза 2с
-прерывание
-прерывание
-пауза 2с
-прерывание
-прерывание


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:50:37 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 1
Вот тот же эффект
Для начала очистку флага в начало обработчика прерывания перенеси. Скорее всего отпустит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:53:40 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
Ура! Теперь все работает, правда прерывание перенес и все наладилось. Спасибо большущее, очень выручили!!!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 20:58:08 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 0
Флаг прерывания, кстати, не так очищается. Но это на самостоятельную проработку RM. Обрати внимание, что биты в SR имеют статус "rc_w0". Флаги можно проще чистить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 21:00:44 
Собутыльник Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 641
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2637
Откуда: г. Чайковский
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
TEPEM писал(а):
TIM2->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF
Очень серьезная ошибка, которая может будет возникать, а может нет и крайне трудно будет ее найти, когда что-то заглючит.

Вот так надо флаг сбрасывать.
Код:
TIM2->SR = ~TIM_SR_UIF


Добавлено after 1 minute 56 seconds:
VladislavS писал(а):
Флаг прерывания, кстати, не так очищается.
Я реально так как-то влетел. Самое интересное, на стадии изучения МК, нормально сбрасывал, потом перемкнуло.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Чт дек 05, 2019 21:03:18 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 1
правда прерывание перенес и все наладилось.
Думаю, стоит пояснить что происходит. В микроконтроллере много разных шин, работающих на разных скоростях. Процессор дал команду на очистку бита в таймере и это потребует несколько тактов на реальную очистку. И если сразу же выйти из прерывания, то можно успеть схватить ещё не очищенный бит снова. Это если на пальцах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вс дек 08, 2019 00:18:44 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
[del]


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вс дек 08, 2019 09:28:36 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Рейтинг сообщений: 214
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1327
Рейтинг сообщения: 1
[del]

Добавлено after 1 hour 12 minutes 14 seconds:
TEPEM, перекачай файл. Что-то я спросонья не то закинул.


Вложения:
startup_iar_stm32f412zx.c [10.43 KiB]
Скачиваний: 37
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вс дек 08, 2019 20:46:12 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 111
Откуда: Самара
Рейтинг сообщения: 0
Проверил код этот на трех разных камнях, f103, f427, f412, моя строчка из интернета работает только на f427 - void TIM2_IRQHandler(void),
а ваша - extern "C" void TIM2_IRQHandler(void) везде, хотя первый вариант указан в подключаемых стандартных библиотеках, в чем шутка юмора?

Добавлено after 27 minutes 46 seconds:
Господа, я посоветоваться у Вас хотел. У меня тут платка с забавным дисплеем stm32f412g disco. Он 240х240, на st7789 подключен через параллельный 16 битный (кажется 8080 как я понимаю) в FSMC камня. Очень охота его запустить без всяких халов и прочей ереси кубовской. Но мои познания сишки скудны, из времен когда диал ап только появился, и мы качали инфу на книжных рынках, да и занимался я только openGL, а как вышла книга опенгл фор делфи - свалил с сишки, там как раз вышел визуал студио 7 на 6 дисках, не реальная цена на тот момент для меня была, а книги были по опен гл на с++ целиком на встроенных мастерах ВСнет. Ну да это лирика. И вот я думаю есть два пути, либо мучать примеры инициализации из сети, но я верно все их перебрал безрезультатно, даже по китайским блогам шастал. Либо стандартный пример из куба отчистить от ереси, я уже почти сделал это но застрял жестко. У меня пока с подвижки только в виде проекта с таймером, настроенными ногами на FSMC, и шим на подсветку. Что бы Вы посоветовали?


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

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


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

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


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

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


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