Gast
#759257
ATMEGA88 programmiert on BASCOM ( mit Inline Assembler ) Ich verwende den Timer0 als einstellbaren Taktgenerator. Diesen Takt führe ich Timer1 zu. Timer1 verwende ich zum messen der Zeit zwischen zwei Digitalimpulsen. Wenn der erste Impuls auftritt, wird Timer 1 auf Null gesetzt und der Takt freigeben Wenn nun der zweite Impuls auftritt, wird der Timer gestoppt und der Zählerwert ausgelesen. Ich schreibe nun den Zählerwert in das OCR1A-Register, setze den Timer1 auf 0 und geben dan Takt wieder frei. Gleichzeitig sende ich über die serielle schnittstelle diverse Daten zu einem PC. Wenn nun der Zählerstand den Wert des OCR1A-Registers erreicht, wird ein Interrupt ausgelöst der einen Digitalausgang schaltet. Dies funktionert am Schreibtisch auch einwandfrei. Wenn ich das ganze nun aber Vorort ausprobiere wird der Interrupt nicht ausgelöst, obwohl das restliche Programm einwandfrei funktionert. Da das restliche Programm einwandfrei funktionert, kann ich feststellen, dass der Timer1 beim ausmessen des Zeitabstandes der beiden Digitalsignale einwanfrei funktionert. Es wird nur der Interrupt nicht aufgerufen. Der uC hängt sich nicht auf und führt auch keinen RESET durch. Dies könnte ich feststellen. Ich habe die BrownOut-detection mit 4.3V aktiviert. Kann es sein, dass der uC beim Einschalten nicht ordentlich initialisert wird ? Bin nun echt schon am verweifeln. Könnt Ihr mir helfen ? Würde mir die entscheidente Hilfe auch was kosten lassen. hmg Mandi