Hallo,
ich möchte LEDs zur Musik ansteuern(bassgetaktet).
Eine Elektronik wertet das Basssignal aus und gibt das Signal auf den INT0 eingang vom µC (NPN Transistor schaltet bei aktiv gegen Masse).
Leider bekomme ich immer 2 Signale vom INT0 Eingang. Also 1 Signal zu viel. Das möchte ich softwaremäßig ändern!
Meine Idee:
Sobald der INT0 aufgerufen wird, wird der INT0 deaktiviert - leider kommen immer noch 2 Impulse!
Nun habe ich einen Zähler und einen Printbefehl in die INT0_ISR reingeschrieben - der Zähler zählt bis 1 und es kommen 2 Printbefehle! Aber warum zählt der Zähler dann nicht bis 2?
Kann mir das bitte einer erklären?
Tobi
hier die empfangenen Daten über die serielle Schnittstelle
==============<\r><\n>
0<\r><\n>
==============<\r><\n>
0<\r><\n>
==============<\r><\n>
0<\r><\n>
==============<\r><\n>
int0 Aufruf<\r><\n>
1<\r><\n>
==============<\r><\n>
int0 Aufruf<\r><\n>
1<\r><\n>
==============<\r><\n>
0<\r><\n>
==============<\r><\n>
0<\r><\n>
==============<\r><\n>
Code:$regfile = "m32def.dat" $hwstack = 40 $swstack = 40 $framesize = 40 $crystal = 14745600 $baud = 19200 Wait 2 'damit erst die Spannung anliegt und dann der µC startet '------------------------------------------------------------------------------- 'Ein- Ausgänge: Ddra = &B00000000 Ddrb = &B00000000 '1 Ausgang, 0 Eingang => Pin PB5-0 als Ausgang 6&7 als Eingang 'Ddrc = &B00000000 '1 Ausgang, 0 Eingang => Pin PC7-0 als Ausgang Ddrd = &B00000000 '1 Ausgang, 0 Eingang '------------------------------------------------------------------------------- 'Interrupt von Bassauswertung On Int0 Irq0 'Enable Int0 Config Int0 = Falling 'wechsel von High auf Low Enable Interrupts Dim Zaehler_do As Single Dim Zaehler_int0 As Byte Enable Int0 'Do - Looproutiene: Do Incr Zaehler_do If Zaehler_do > 50000 Then Print Zaehler_int0 Print "==============" Zaehler_do = 0 Zaehler_int0 = 0 Enable Int0 End If Loop '_______________________________________________________________________________ Irq0: Disable Int0 Incr Zaehler_int0 Print "int0 Aufruf" Return







Zitieren

Lesezeichen