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