interrupts machen folgendes:
wenn ein INT0 z.b. angesprochen wird also von außen her als pin, dann wird im controller auf eine bestimmte adresse verwiesen, ich glaub 0004 iss das bei int0, in dieser adresszeile im codespeicher steht dann ein goto line sowieso (der sprung in die ISR) und da springter dann hin, und führt die entsprechenden befehle nacheinander aus, danach geht er zurück ins hauptprogramm, oder dahin, wo er unterbrochen wurde.
beim int1 isses genauso, nur dass der z.b. 0008 belegt (die adressen dazwischen werden von anderen interrupts belegt) und dann eben das ausführt was im goto dieser zeile steht und zurückspringt.
wenn du also nen interrupt hast und er springt in die ISR, dann springter danach wieder raus, auch wenn der interrupt noch anliegt, das müsstest du dann in einer schleife überprüfen, ob der noch anliegt oder nicht.
wenn du dafür ne endlosschleife in die ISR legst, dann bleibter dadrin auf jeden fall hängen, weiler dann niemals ins hauptprogramm zurückkehrt
ich hoff das hat geholfen ^^
Martin
Lesezeichen