Hi Leute..
Also es geht (wieder) um eine Beleuchtungsteuerung..
Und zwar soll folgendes passieren :
1. An Int0 liegt das Signal eines PWM empfängers an.
2. Sobald das signal an Int0 wechselt wird die ISR "Messen" ausgelöst. Diese startet Timer0 und sobald das signal wieder wechselt wird der Timer gestoppt. So habe ich dann einen Wert zwischen 62,5 und 125..
Bis hierhin schonmal den Code :
So, nun will ich in der ISR "Messen" zwei verschiedene "Sprünge auswählen"Code:$regfile = "m644def.dat" $crystal = 16000000 Config Porta = Output Config Portc = Output Config Portd.2 = Input Dim Reading As Bit Dim Empf_wert As Byte Reading = 0 Config Timer0 = Timer , Prescale = 256 Enable Timer0 Stop Timer0 On Timer0 Error Config Int0 = Change On Int0 Messen Enable Interrupts Enable Int0 Do Loop End Messen: If Reading = 0 Then Start Timer0 Reading = 1 Else Stop Timer0 Empf_wert = Timer0 Timer0 = 0 Reading = 0 End If Return Error: Stop Timer0 Return
Undzwar geht es um folgendes : Wenn der Wert < 95 ist soll ein Programm ablaufen und wenn der wert > 95 ist soll ein ANDERES programm ablaufen..
Also ich will im Prinzip durch den im Interrrupt ermittelten Wert zwei unterschiedliche Programme starten.. Das erste Programm soll einfach sein, das alle LEDs auf High gesetzt werden und das zweite soll ein Lauflicht werden..
Da kommt aber noch ein Problem hinzu.. Undzwar wird das Signal am Empfänger ja mehrere mal in der Sekunde gesendet und jedes mal die ISR "Messen" ausgelöst.. Das Problem ist das nur, das wenn der Wert > 95 ist, würde das Lauftlicht-Programm jedes mal neu starten.. Das soll aber nciht passieren, es soll an der Stelle weiterlaufen wo es aufgehört hat..
Leider weiß ich noch nicht so ganz wie ich das realisieren soll..
Hoffentlich könnt ihr mir helfen..
Danke im Vorraus
Mfg Yannik
Lesezeichen