|
STM32vlDiscovery цикл for не работает |
|
|
|
Mar 22 2015, 16:44
|

Профессионал
    
Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486

|
STM32vlDiscovery. Простейшая конструкция - просуммировать элементы массива. Код uint16_t GAME[m]={19,64,32,64,64,32,32,64,64,32,64,32,64,32,32,64,64,32,1152}; const uint8_t m = 255; uint16_t Tsinhro_T=0; .... .... N = GAME[0]; Tsinhro_T = 0; for (i=1; i<N; i++) { Tsinhro_T =Tsinhro_T +GAME[i]; } Не хочет работать, виснет в теле цикла, причем в отладчике, пошагово, все работает как надо. В чем дело, мозг сломал. Подскажите, пожалуйста, куда копать?
Сообщение отредактировал domowoj - Mar 22 2015, 19:31
--------------------
И на камнях растут деревья!
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 20)
|
Mar 22 2015, 19:41
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата Не знаю, что такого в этой процедуре, что может стек поломать... да нет там ничего, 3 строчки, все просто... ТС почему то упорно скрывает от нас реальный код, и дает какие-то выжимки. Тем самым от нас скрыта правда, а видно только то что автор считаем важным, при этом поскольку у автора ошибка, очевидно автор не очень осознает что же на самом деле важно, а что нет)... Если только Tsinhro_T - ни какой-то злобный тип для которого перегружен оператор присвоения как-то очень злобно... что с вочь догом, с задержкой чтения флеши, с другими прерываниями? самое простое запретить все прерывания, и поглядеть если через цикл пройдет, то точно дело в них...
|
|
|
|
|
Mar 26 2015, 17:53
|

Профессионал
    
Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486

|
Добрый вечер уважаемые друзья! Цитата(Golikov A. @ Mar 23 2015, 01:41)  ТС почему то упорно скрывает от нас реальный код, и дает какие-то выжимки. Тем самым от нас скрыта правда, а видно только то что автор считаем важным, при этом поскольку у автора ошибка, очевидно автор не очень осознает что же на самом деле важно, а что нет)... Вы оказались абсолютно правы. После таймаута, (взгляд все-таки замыливается) и внимательного разбора написанного, нашел ЛЯП, как AVR_овский отголосок, при сбросе флага одного из прерываний я его не сбрасывал в 0, а устанавливал в "1". Вместо Код TIM4->SR &= ~TIM_SR_UIF; // было Код TIM4->SR |= TIM_SR_UIF; // Спасибо всем, тема закрыта.
--------------------
И на камнях растут деревья!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|