Kłaniam się, no zostałem zmuszony i proszę o rozwikłanie "zagadki", przypuszczam że to banał, już wyjaśniam.
Piszę w AtmelStudio6.1 program na atmege88 do obsługi silnika krokowego. W opcjach projektu mam z listy wybrany mikrokontroler. Zużywam na obsługę 6 nóg portu C. Kwestia rozchodzi sie o sam kompilator. Korzystam z symulatora (start debuging and break) i jade po kolei linia po linii (step into) i natrafiam na coś takiego:
- kompilator nie reaguje na definicje zmiennej POS i wpisanie do niej 0
- dopiero kiedy w switchu wpiszę (POS=0) lub (POS=1) to reaguje
- LUB dopiero kiedy przeniosę definicję do funkcji głównej main to jest ok.
Kiedy int POS=0 (lub=1) jest tuż za #define a przed 'main' to program skacze po ustawieniu DDRC do warunków if co dla mnie jest kompletnie niezrozumiałe. Sądziłem że jeśli definiuje zmienne poza funkcją 'main' to mają one zakres globalny widoczny dla całego pliku projektu a jeśli w funkcji 'main' to zakres lokalny widoczny tylko w 'main'.
Bardzo proszę o wyrozumiałość, pewnie to banał jak nie wiem co
Tu jest kod asemblera gdzie po ustawieniu DDRC przechodzi do warunków IF
a dopiero później do sprawdzania SWITCH
»
Piszę w AtmelStudio6.1 program na atmege88 do obsługi silnika krokowego. W opcjach projektu mam z listy wybrany mikrokontroler. Zużywam na obsługę 6 nóg portu C. Kwestia rozchodzi sie o sam kompilator. Korzystam z symulatora (start debuging and break) i jade po kolei linia po linii (step into) i natrafiam na coś takiego:
- kompilator nie reaguje na definicje zmiennej POS i wpisanie do niej 0
- dopiero kiedy w switchu wpiszę (POS=0) lub (POS=1) to reaguje
- LUB dopiero kiedy przeniosę definicję do funkcji głównej main to jest ok.
Kiedy int POS=0 (lub=1) jest tuż za #define a przed 'main' to program skacze po ustawieniu DDRC do warunków if co dla mnie jest kompletnie niezrozumiałe. Sądziłem że jeśli definiuje zmienne poza funkcją 'main' to mają one zakres globalny widoczny dla całego pliku projektu a jeśli w funkcji 'main' to zakres lokalny widoczny tylko w 'main'.
Bardzo proszę o wyrozumiałość, pewnie to banał jak nie wiem co
Tu jest kod asemblera gdzie po ustawieniu DDRC przechodzi do warunków IF
Kod: text
Kod: C / C++
