Dobra, poddaję się i piszę posta
Sprawa jest tak dziwna, że sam nie wiem co jest grane.
W procesorze ATMega8 nie działają wejścia, nie mam pojęcia o co może chodzić.
Do tej pory nie było z tym nigdy problemu, teraz przeszedłem na obudowę SMD (raczej bez związku) i mam problem.
Do procesora jest podłączony DIPSwitch kodujący, miedzy innymi do nóżki PORTC-3.
ustawienia:
DDRC=0x00;
PORTC=0xFF;
Dipswitch zwiera do masy, napięcia pomierzone, wszystko się zgadza.
Wyjście testowe podpisane pod makro OUTon; (oraz OUToff;) działa.
Mam taką pętlę:
Czyli powinno migać delikatnie (5ms) jak włącznik do masy nie zwiera, a dłużej (65ms) jak zwiera.
A tu nic, zawsze widzi tego if'a jako niespełnionego, nawet jak odwrócę logikę i wywalę "!".
Co więcej nawet jak zrobię:
i sobie zwieram do masy ładnie co popadnie to też NIC... if nigdy nie jest spełniony.
Jakiś pomysł

Sprawa jest tak dziwna, że sam nie wiem co jest grane.
W procesorze ATMega8 nie działają wejścia, nie mam pojęcia o co może chodzić.
Do tej pory nie było z tym nigdy problemu, teraz przeszedłem na obudowę SMD (raczej bez związku) i mam problem.
Do procesora jest podłączony DIPSwitch kodujący, miedzy innymi do nóżki PORTC-3.
ustawienia:
DDRC=0x00;
PORTC=0xFF;
Dipswitch zwiera do masy, napięcia pomierzone, wszystko się zgadza.
Wyjście testowe podpisane pod makro OUTon; (oraz OUToff;) działa.
Mam taką pętlę:
while(1){
OUTon;
delayms(5);
if(!(PINC & _BV(PC3))) {OUTon;} else {OUToff;}
delayms(60);
OUToff;
delayms(200);
}
Czyli powinno migać delikatnie (5ms) jak włącznik do masy nie zwiera, a dłużej (65ms) jak zwiera.
A tu nic, zawsze widzi tego if'a jako niespełnionego, nawet jak odwrócę logikę i wywalę "!".
Co więcej nawet jak zrobię:
if(PORTC!=0xFF) {OUTon;} else {OUToff;}
i sobie zwieram do masy ładnie co popadnie to też NIC... if nigdy nie jest spełniony.
Jakiś pomysł