Gast
#167332
Hallo, ich habe ein kleines Problem etwas in ASM zu realisieren. Ich möchte die Zeitspanne, die zwischen zwei Zündimpulsen eines Verbrennungsmotors geschieht abgreifen (Schwingungsdauer). Hiervon möchte ich dann den Kehrwert (Frequenz) nehmen, um somit die Drehzahl des Motors auf eine Minute hochzurechnen. Das Signal liegt bereits mit TTL-Pegel vor und bewirkt bei jedem Interrupt einen Zündimpuls beim mc. Als mc verwende ich einen Atmel Mega16 und möchte diesen mit Assembler programmieren. (Ich hatte bereits ein entsprechendes funktionierendes C-Programm geschrieben, nur leider war das sehr recoursen-lastig --> Wechsel zu ASM.) Jetzt habe ich folgendes Problem: Nach einigen mathematischen Vereinfachungen berechne ich die Drehzahl mit folgendem Ausdruck: UPM = 3750000 / Anzahl_der_Timer_interrupts. (Anzahl_der_Timer_interrupts liegt zwischen 350 und 3500.) Mein Problem ist jetzt, dass ich ja eine Division eines 24-Bit Integers durch einen 16-Bit integer.. ist sowas ohne Probleme in ASM möglich? Wie könnte ich das umgehen? Danke schonmal für eure Bemühungen! mfg, #jaedle