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.