Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CSS6.0.1 - не выполняется оператор if
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Darth_Vader
Почему может не выполняться оператор if, ни одна ветка не исполняется - ни истинная, ни ложная.
Трассировкой прохожу - с if сразу идёт переход на return.
CSS6.0.1
Код
#include <msp430g2452.h>

int main(void) {
    int i=0;
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer
    P1DIR = 0b00011110;
    P1OUT = 0;
    P2DIR = 0;
    P2REN = 255;
    P2OUT = 0;

    if(P2IN)
        i++;
    else
        i--;
    return 0;
}
aaarrr
Потому что значение i потом никак не используется.
Xenia
Цитата(Darth_Vader @ Feb 22 2015, 16:50) *
Почему может не выполняться оператор if, ни одна ветка не исполняется - ни истинная, ни ложная.


Скорее всего потому, что переменная i нигде больше не используется - дальше тело main() кончается, и переменная гибнет, будучи в ней локальной.

Попробуйте определить i глобально, вынеся его определение за пределы main().
Darth_Vader
Большое спасибо!
Про оптимизацию кода компилятором я как-то и не подумал!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.