Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 11.08.2015, 14:57  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию stm32f10x IAR startup

Доброе здрасьти.
Странное дело: собрал в IAR ARM проект:
МК stm32f103vct6
-поморгашка в главном цикле
-по нажатию кнопки вызвать прерывание, вкл/выкл другой светодиод

Теперь, собственно, проблема:
-если из проекта удалить startup_stm32f10x.
то фоновая поморгашка работает, но при нажатии на кнопку контроллер
виснет
-если же в проект добавить файл стартапа, то ни поморгашка, ни
прерывание не работают.

Люди добрые, помогите

p.s. естественно, я недавно начал переходить на ARM.
p.p.s. буду очень признателен, если дадите ссылку на решение подобной проблемы, ибо в даташите не смог.
Реклама:
LetalNik вне форума  
Непрочитано 11.08.2015, 20:17  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

В 14-й строчке посмотри
niXto вне форума  
Непрочитано 12.08.2015, 07:42  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Как понял:
-в файле startup расписаны вектора прерываний;
-если к проекту подключить startup + system, то инициализация PLL идет в обход программиста;
-если подключить startup, то можно ручками прописать SystemInit(), где настроить PLL (так и сделал);

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

PUBWEAK EXTI2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI2_IRQHandler
B EXTI2_IRQHandler

А я как раз пытаюсь настроить прерывание а-ля GPIOB.2 == INT2
Линию настроил, проверил: без прерывания работает как надо (уровень детектируется).

Где-то в main.cpp:

void EXRI2_IRQHandler(void)
{
EXTI-›PR = (uint32_t)0xffffffff;
if(EXTI-›PR & EXTI_PR_PR2)
{
GPIOB-›ODR ^= GPIO_ODR_ODR2;
}
}

Но по ощущениям что-то вроде:
ORG _interrupt_vector
jmp $ //while(1){}

Как исправить - понятия не имею...

Последний раз редактировалось LetalNik; 12.08.2015 в 09:36.
LetalNik вне форума  
Непрочитано 12.08.2015, 10:18  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Ошибку в void исправь

И ты вначале сбрасываешь флаг прерывания, а потом надеешься, что он будет установлен...
niXto вне форума  
Сказали "Спасибо" niXto
LetalNik (12.08.2015)
Непрочитано 12.08.2015, 10:46  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Спасибо, разобрался. Глупость была совсем.

Последний раз редактировалось LetalNik; 12.08.2015 в 12:48.
LetalNik вне форума  
Непрочитано 12.08.2015, 17:31  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Сбрасывать флаг прервания в самой последней инструкции обработчика тоже нельзя, иначе после выхода ядро снова войдёт в обработчик... ДМБ помогает конечно
niXto вне форума  
Непрочитано 13.08.2015, 07:46  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Сообщение от niXto Посмотреть сообщение
Сбрасывать флаг прервания в самой последней инструкции обработчика тоже нельзя, иначе после выхода ядро снова войдёт в обработчик...
Это почему?
Bill вне форума  
Непрочитано 13.08.2015, 08:50  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Особенности Cortex. Может выйти из прерывания раньше, чем сбросить флаг.
STM32F0 вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
Проба пера AT91SAM9260 + IAR + J-Link ZED® Микроконтроллеры, АЦП, память и т.д 31 07.12.2010 21:18
Помогите с проектом на IAR EW for AVR для Atmega32+WG12864 PROFF2010 Микроконтроллеры, АЦП, память и т.д 1 22.10.2010 00:01
IAR EWEZ80 изчез с сайта IAR где взять? int4880053 Микроконтроллеры, АЦП, память и т.д 0 26.05.2009 20:03
Обновление IAR Embedded Workbench for Microchip PIC18 i8051 Микроконтроллеры, АЦП, память и т.д 2 29.05.2008 15:35


Часовой пояс GMT +4, время: 18:14.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot