...mmhh ist der AVR zu langsam? ich bekomme bei gleichem eingangsimpuls kein gleichmäßiges ergebniss. Habe versucht es so gut wie möglich zu kommentieren


$regfile = "m128def.dat"
$crystal = 16000000
$baud = 57600

Config Portd = Input
Portd.1 = 1 'Pullup an PD1 aktivieren
Portd.3 = 1 'pullup an pd3 aktivieren

'Config SCL = Portd.1 'A18 WEIß / INT1 RISING
'Config SDA = Portd.3 'a20 GRAU / INT3 FALLING


On Int1 Readbyte
Config Int1 = Rising

On Int3 Startchk
Config Int3 = Falling
Enable Interrupts

Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim Arr(33) As Integer
'=============HAUPTPROGRAMM==============
For A = 1 To 9 'array leer machen
Arr(a) = 0
Next
A = 1 'Zähler auf eins setzen
print "Programmstart"
Enable Int3 'Los gehts
Do

Arr(a) = B 'Array(zähler)=wert ->> wird in int1 vergeben
If A = 32 Then
Disable Int1 ' erstma nix mehr interrupten
For C = 1 To 32
Print Arr(c); 'array ausgeben
Next
Print ""
A = 1 'Zähler auf eins zurücksetzen
Enable Int3 ' und wieder aufs fallende datenbyte warten
End If

Loop
'==========================================



'============INT3 Routine================
Startchk:
If Pind.1 = 1 Then
Disable Int3 'Startbedingung -> Kein interrupt von Data
Enable Int1 'Dafür von clock
End If
Return
'=======================================

'============INT1 Routine===============



Readbyte:
B = 0
If Pind.3 = 1 Then B = 1 'Datenbit=1'
A = A + 1 'Zähler um eins erhöhen
Return
End


Ausgabe des terminals:

00011100000000010000000000010010
00011100000000010000000000000010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010011
00011100000000010000000000010011
00011100000000010000000000010011
00011100000000010000000000000011
00011100000000010000000000010011
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010011
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000000010
00011100000000010000000000000010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000010010
00011100000000010000000000000010
00011100000000010000000000010010
00011100000000010000000000010011
00011100000000010000000000010011

am anfang scheint alles gleichmäßig zu laufen, nur nach hintenwirds "instabil".