Hallo,
ich habe wiederkehrende (etwa alle 20ms) Impulse (etwa 1ms bis 2ms
lang).
Ich möchte auf steigende und fallende Flanke reagieren...
Aber warum wird bei der Ausführung im Interrupt das Pin B0 auf 0
gesetzt?
Im Interrupt setze ich sogar immer das Pin B0 auf 1.
Es ist keine Zeile vorhanden, die Pin B0 auf 0 setzt.
Ich möchte verstehen, warum das so ist.
Hat jemand eine Idee? Oder habe ich etwas übersehen?
Original Signal: Pink
Port B0: Türkis
Danke,
Grüße,
Peter
1 | $Regfile = "attiny85.dat"
|
2 | $Crystal = 8000000
|
3 | $hwstack = 64
|
4 | $swstack = 16
|
5 | $framesize = 48
|
6 |
|
7 |
|
8 | Dim ImpulsStart as Bit
|
9 | ImpulsStart=0
|
10 |
|
11 | Config Pinb.0 = output
|
12 | pinb.0=1
|
13 |
|
14 | Config Int0 = Rising
|
15 | On Int0 On_int0
|
16 | Enable Int0
|
17 | Enable Interrupts
|
18 |
|
19 |
|
20 |
|
21 | Do
|
22 | Loop
|
23 |
|
24 |
|
25 | On_int0:
|
26 | if ImpulsStart = 0 then 'Steigende Flanke
|
27 | ImpulsStart=1
|
28 | Config Int0 = Falling
|
29 | else 'Fallende Flanke
|
30 | ImpulsStart=0
|
31 | Config Int0 = Rising
|
32 | end if
|
33 | pinb.0=1 'Eigentlich sollte B0 immer 1 sein!
|
34 | Return
|