Zitat Zitat von oberallgeier
Vermutlich unbedeutend, aber es fällt auf: Warum steht "cli;" nach "Ende der Initialisierungen" - das ist "sei" doch noch garnicht aktiv ?
das war/ist nur eine vorsichtsmaßnahme.
sollte aber keinen einfluss auf den ablauf haben.
Zitat Zitat von oberallgeier
Fehlerhaft könnte sein, das Du hast in Deiner Hauptschleife "mloop" als ersten Befehl "sei" stehen hast.
nun, da kann man vor und nachher noch ein NOP einfügen.
werds probieren und die auswirkung kundtun.
Zitat Zitat von oberallgeier
Möglicherweise erzeugt das "nested interrupts" , ohne dass Du es möchtest. Ich hab´s aber nicht ausprobiert. Vielleicht versuchst Du die (nicht sehr hübsche) Methode , dass Du zwei wait-Routinen schreibst - wait1 und wait2 , mit tsec1 und tsec2. Obs hilft, weiss ich aber nicht.
ist eine möglichkeit. werde es (vielleicht in einer museminute) mal probieren.
Zitat Zitat von Besserwessi
Immerhin wird das SREG wohl schon mal getrennt für timer und ext. Interrupt gesichert.
Probleme könnte es geben wenn wärend des wartens ein 2 ter Interrupts an Impuls auftritt, dann geht die sicherung von SREG daneben, denn es wird 2 mal der gleiche Interupt aufgerufen.
eben, deshalb habe ich auch 2 getrennte sicherungsregister angelegt.
und zusätzlich fange ich einen interrupt ab indem ich ihn disabled habe - er also nicht "aktiv" werden kann - und, falls während der wartezeit einer auftritt, indem ich ihn INT0-enable und vor rückkehr abfrage und ggf. lösche.
das mache ich deshalb, weil ich das problem ja hatte, was sich allerdings in einer doppelten (mit ganz kurzer unterbrechung, kaum zu sehen) aktivzeit von PB3 auswirkte, aber keinen einfluss auf die imulslänge an PB0 hatte.
aber so lange ich einen impuls bekomme, der ausreicht die torelektronik anzustoßen, soll mir das einstweilen egal sein.
es ist halt nur nicht nachzuvollziehen warum es so ist.

danke jedenfalls für eure mühe, sich durch meinen code zu quälen !!