Gast
#300951
Hallo, ich muß an 3 möglichen Eingängen (X/Y/Z-Achse) auf einen Impuls reagieren, der ca. 5us lang ist. Der nächste Impuls kann aber schon 20us später kommen. Leider kann es passieren, daß die Impulse eben nicht absolut zeitgleich an 1-3 Eingängen auftreten, sondern mit leichter zeitlicher Verzögerung, also etwas 1-2 us später. (wieder 5us lang, 20us später der nächste). Hat das schon mal jemand gemacht? Geht das überhaupt mit Bascom oder sollte ich das gleich in ASM probieren? Als Prozessor habe ich mir den ATmega 88 ausgesucht, wegen der möglichen IR-Ports. Dort würden die Interrupts doch dann so abgearbeitet, wie sie aufgetreten sind,oder? Aber eine Idee wäre doch auch, alle 3 Kanäle zu odern, um dort einen globalen Interrupt an INT0 auszulösen und dann nachzusehen, wie der Status auf den 3 Leitungen ist? Diesen einlesen, speichern, Flag setzen und raus aus der IR-Routine. Dann könnte der nächste kommen... Damit könnte ich dann den Mega8 nehmen, der ist leichter zu beschaffen. Soweit meine Theorie, denn was passiert in der IR-Routine, wenn der nächste Impuls auftritt, während ich den noch nicht verarbeitet habe? Hat jemand schon mal mit nem 88 an 3 Eingängen sowas verarbeitet? Wie verhält sich der Mega8, wenn ich in der INT0 Routine einen Counter hochzähle und dann aber ein neuer IR auftritt? Geht der nicht verloren? Danke für einen Gedankenaustausch und Hinweise, Gruß Wolfram