das samsung-IR-protokoll schickt 4,5ms ein high und danach 4,5 ms einen
low-pegel. ich triggere auf eine steigende flanke finde auch den high
pegel allerdings nach mehr als 4,5 ms ist immer noch kein low-pegel
sichtbar. meine zeitmessung ist bestimmt ein wenig ungenau, aber selbst
nach 10ms kommt keiner... mach ich da was fundamental falsch ?
void delay2p5ms(){
unsigned char temp1,temp2;
temp1 = 0x21;
while(temp1 > 0) {
temp2 = 0xc9;
while(temp2!=0) temp2--;
temp1--;
}
}
void delay_1s(unsigned int s){
unsigned long s2 = s*1000/5*2;
while(s2-->0)delay2p5ms();
}
SIGNAL(SIG_INTERRUPT0){
unsigned char temp;
if(!bit_is_set(PIND,INT0)) ledinvert_mask(128);
else {
delay2p5ms();
if(!bit_is_set(PIND,INT0)) ledinvert_mask(64);
else {
delay2p5ms();
delay2p5ms();
if(bit_is_set(PIND,INT0)) ledinvert_mask(32); // <----- das
liefert true
else led_mask(LEDMASK_ALL);
}}
delay_1s(6);
led_mask(LEDMASK_NONE);
}
int main(){
outp(0x00,DDRD);
outp(0x40,GIMSK);
outp(0x03,MCUCR);
sei();
}
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.