Gast
#129372
Hallo an alle, da ich noch auf meine Bauteile fürs Telescop warten muß, wollte ich gestern mal "fix" einen kleinen Frequenzmesser bauen. Der Grund ist mein Synchronmoter zur Nachführung. Dieser muß mit 12V/50Hz angesteuert werden und das wollte ich überprüfen. Dazu habe ich eine Schaltung mit dem Nec555 aufgebaut, welche mir ein Rechtecksignal mit ca. 5V/50Hz und einem Tastverhältniss 50:50 ausgibt. Das Signal wurde auf Int0 vom AtMega32(Experimentierplatine) gelegt. Vorgehensweise: Counter von Timer1 wird zu Beginn der Messung auf 0 gesetzt. Int0 auf "rising Edge". Jetzt werden 1sec lang die Impulse auf Int0 gezählt(kurze Interruptroutine). Nach der Sekunde habe ich ja direkt die Frequenz auf dem Display. Aber was zeigt er an? Etwas über 100Hz also das Doppelte! Der Timer1 funktioniert aber, genau eine Sekunde. Hinter den 555 einen 7414 gelegt und noch mal probiert. 100Hz! Altes Oszi rausgeholt und Signal angesehen. 52Hz / Tastverhältnis 50:50 und schöne steile Flanken. Routine von Int0 verändert. Wenn rising Edge erkannt dann: Zähler um 1 erhöhen und auf Erkennung von falling Edge umschalten. Löst die falling Edge ein Int aus, dann nichts zählen, sondern wieder auf Erkennung der rising Edge umschalten. Meine Vermutung war daß die rising Edge mehrmals erkannt wird. Jetzt stimmt auch die Frequenzanzeige wieder. Das ganze habe ich bis 50kHz treiben können. Ohne "Umschalten" wurde immer die doppelte Frequenz angezeigt. Wo ist hier der Fehler? Bedeutet rising Edge nicht ein Wechsel von 0 auf irgendwas oder ist die ganze Flankenlänge die rising Edge? Den Fehler, wenn es einer ist , muß ich finden. Mein selbstgebauter Encoder (alte Maus + 7414) arbeitet auch auf dem Prinzip. Wenn da auch die rising Edge mehrmals einen Int auslöst wird die Position verfälscht. Gruß Stevko