Hi Leute!
Ich hab da ein kleines Problem mit der Erfassung und Berechnung der Geschwindigkeit eines Rades.
Der Interrupt "INT0" wird aufgerufen, denn der Zähler, der bei jeder Radumdrehung den Radumfang addiert funktioniert und zählt entsprechend hoch. Doch die Geschwindigkeitsanzeige bleibt auf null stehen.Code:'VARIABLEN Dim Time_umdrehung_n As Integer Dim Time_umdrehung_ms As Integer Dim Time_umdrehung_s As Single Dim Radumfang As Single Dim Vms As Single Dim Meter As Single Dim Vkmh As Single 'KONSTANTEN Radumfang = 0.3 'KONFIGURATION INT0 Config Int0 = Falling On Int0 Int0_isr Enable Int0 'KONFIGURATION ADC Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc 'KONFIGURATION TIMER0 Config Timer0 = Timer , Prescale = 8 Timer0 = 131 On Timer0 Timer0_isr Enable Timer0 Stop Timer0 'KONFIGURATION LCD Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portb.2 , Rs = Portc.5 , E = Portc.4 Config Lcd = 16 * 4 Config Lcdbus = 4 Waitms 100 Initlcd Waitms 100 'INTERRUPTS GLOBAL FREIGEBEN Enable Interrupts Do Time_umdrehung_s = Time_umdrehung_ms * 1000 Vms = Radumfang / Time_umdrehung_s Vkmh = Vms * 3.6 Locate 1 , 1 Lcd Vms Locate 2 , 1 Lcd Meter Locate 4 , 1 Lcd Vkmh Loop Int0_isr: Stop Timer0 Time_umdrehung_ms = Time_umdrehung_n Time_umdrehung_n = 0 Start Timer0 Meter = Meter + Radumfang Return Timer0_isr: Timer0 = 131 Incr Time_umdrehung_n Return End
Entweder hab ich da einen gravierenden Denkfehler drinnen, oder ich bin schon ganz paranoid geworden und seh den offensichtlichen Fehler nicht.
Gruß
Thomas







Zitieren

Lesezeichen