реклама на сайте
подробности

 
 
> Разное поведение в отладчике и без него.
tdi@013h
сообщение Apr 28 2012, 14:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 8-02-11
Пользователь №: 62 795



Дано: KEIL, плата на stm32f103rb, ULINK2.
Задача: поморгать диодами.
Код:
Код
int main(void)
{
    InitHardware();
    for (;;)
    {
        GPIO_ResetBits(Led_1);
        Wait(25000);
        GPIO_ResetBits(Led_2);
        Wait(25000);
        GPIO_SetBits(Led_1);
        Wait(25000);
        GPIO_SetBits(Led_2);
        Wait(25000);
    }
}

Код
void Wait(int Count)
{
    for(; Count !=0; Count--);
}


Когда расставляю брэйкпоинты по телу фона и хожу в отладчике по шагам, то все моргает в нужной последовательности.
Когда отключаю дебаггер, делаю ресет и запускаю, то оба диода просто горят.
Что я делаю не так? И почему так происходит?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение Apr 28 2012, 14:53
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(tdi@013h @ Apr 28 2012, 18:29) *
Код
void Wait(int Count)
{
    for(; Count !=0; Count--);
}

Как Вы думаете, сколько времени выполняется эта функция? У Вас 25000 циклов выполняется при тактовой в МГц. Сделайте задержки большими и лучше штатными средствами типа delay. Посмотрите библиотеку к вашему компилятору.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
tdi@013h
сообщение Apr 30 2012, 02:09
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 8-02-11
Пользователь №: 62 795



Цитата(mdmitry @ Apr 28 2012, 17:53) *
Как Вы думаете, сколько времени выполняется эта функция? У Вас 25000 циклов выполняется при тактовой в МГц. Сделайте задержки большими и лучше штатными средствами типа delay. Посмотрите библиотеку к вашему компилятору.

Скопировал 1в1 функцию из примера моргалки к своей плате.

Компилятор проверю, потому как пересаживаюсь из Eclipse и arm-none-eabi-gcc на Keil и его компилятор, там такие фокусы работали.
Общую идею понял, спасибо.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 30 2012, 08:44
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (tdi@013h @ Apr 30 2012, 05:09) *
пересаживаюсь из Eclipse и arm-none-eabi-gcc на Keil и его компилятор, там такие фокусы работали.
Только при отключении оптимизации (-O0).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- tdi@013h   Разное поведение в отладчике и без него.   Apr 28 2012, 14:29
- - scifi   Цитата(tdi@013h @ Apr 28 2012, 18:29) Ког...   Apr 28 2012, 14:57
|- - Сергей Борщ   QUOTE (scifi @ Apr 28 2012, 17:57) Компил...   Apr 29 2012, 17:03
- - toweroff   задержки а-ля for(i=0;i<NEED_SIZE;i++) в отдел...   Apr 30 2012, 19:16
- - ViKo   У меня в Keil задержки в виде #define Delay(TIME)...   Apr 30 2012, 20:37
|- - Dog Pawlowa   Цитата(ViKo @ Apr 30 2012, 23:37) У меня ...   May 1 2012, 01:50
||- - ViKo   Цитата(Dog Pawlowa @ May 1 2012, 04:50) Ч...   May 1 2012, 06:25
|||- - Сергей Борщ   QUOTE (ViKo @ May 1 2012, 09:25) Просто К...   May 1 2012, 18:29
||- - toweroff   Цитата(Dog Pawlowa @ May 1 2012, 05:50) Ч...   May 1 2012, 15:24
|- - aaarrr   Цитата(ViKo @ May 1 2012, 00:37) У меня в...   May 1 2012, 20:06
- - ViKo   Результаты экспериментов с Keil 4.50 следующие. Ци...   May 2 2012, 08:19
- - ViKo   Продолжение экспериментов. Исходный код: Код#defin...   May 3 2012, 04:40
- - ViKo   Ох, дал маху! Крутил-вертел эти __nop - выкид...   May 3 2012, 08:19


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 00:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016