Цитата(MrYuran @ May 5 2011, 17:24)

Не его собачье дело, обязан.
Это общепринятая методика.
Чего хоть пишет-то?
Вот, у меня работает:
#define DyrgNogoy2 do{P3OUT |= 1; P3OUT &= ~1;}while(0)
IAR для MSP430
у меня на такое ругатеся, разбивание действия не помогает. всетаки думаю связано с оптимизацией
все приводит к тому что возвращается или используется.
пока что так и не смог его победить (
даже большеесть две одинаковые ппрограмки, в одном месте считает верно и все работает в другом все наоборот
void activate_out(uchar number)
{
GETTABLE_PTR(CfgSFBModul,SFBSetings_t,SFBSet);
if(number > 2) return;
number--;
outs_state2bus[number].norm=0; outs_state2bus[number].active=1;
if(SFBSet->outs_flags[number]&0x01) // вот тут адрес SFBSet = 0х003BCE
{
switch(number)
...
void deactivate_out(uchar number)
{
GETTABLE_PTR(CfgSFBModul,SFBSetings_t,SFBSet);
if(number > 2) return;
number--;
outs_state2bus[number].norm=1; outs_state2bus[number].active=0;
if(SFBSet->outs_flags[number]&0x01) // вот тут адрес SFBSet = 0х013BCE как и должен быть
{
switch(number)
{
...
после многоточий код совпадает на 100% еще раз наткнулся на теже грабли в другом месте,