Problem jest następujący, mam dwie instrukcje:
Instrukcje są jak widać równoważne jednak kompilator nie "trawi" zapisu pierwszego, "olewa" go i w asmie pod Debugerem nie ma go. Co do drugiego zapisu jest wszystko dobrze i kompilator tłumaczy to jak się należy .
Gdzie tkwi problem.
Inna sprawa czy znacie jakieś makro do zapisu do zmiennej wartości.
Ponieważ jak umieszczam taki zapis:
Kompilator mnie olewa. Dopiero jak zainicjuje zmienną przy deklaracji wszystko jest OK.
W asmie prawie wszystko jest łatwiejsze. Prawie bo aby zmienić coś w kodzie to .... każdy wie jak coś kiedyś pisał .
Rozwiązaniem było nadanie zmiennym właściwości "volatile" , ale dlaczego tak kompilator wybiórczo wykonuje tłumaczenie. Ten kompilator chyba jeszcze należy dopracować.
PORTB |= (0 << PB0) ;
cbi(PORTB, PB0) ;
Instrukcje są jak widać równoważne jednak kompilator nie "trawi" zapisu pierwszego, "olewa" go i w asmie pod Debugerem nie ma go. Co do drugiego zapisu jest wszystko dobrze i kompilator tłumaczy to jak się należy .
Gdzie tkwi problem.
Inna sprawa czy znacie jakieś makro do zapisu do zmiennej wartości.
Ponieważ jak umieszczam taki zapis:
while(1)
{
A = 3 ;
}
Kompilator mnie olewa. Dopiero jak zainicjuje zmienną przy deklaracji wszystko jest OK.
W asmie prawie wszystko jest łatwiejsze. Prawie bo aby zmienić coś w kodzie to .... każdy wie jak coś kiedyś pisał .
Rozwiązaniem było nadanie zmiennym właściwości "volatile" , ale dlaczego tak kompilator wybiórczo wykonuje tłumaczenie. Ten kompilator chyba jeszcze należy dopracować.
