
Zitat von
Mage1983
Oft fällt der Ausgang erst dann ab, wenn man den Eingang erneut betätigt.
Hallo Markus!
Also ganz ehrlich -- ich kann mir nicht vorstellen, warum der Ausgang nicht zurückschalten sollte. Wenn der ATtiny13 abgestürzt wäre, dann dürfte ein erneutes Betätigen des Schalters auch nichts mehr bringen -- tut es aber.
Dann lass und mal die Symptome behandeln -- ohne auf die Ursache einzugehen. Lass die Hauptschleife den Ausgang ständig neu zurücksetzen:
Code:
Do
Ausgang = 0
!NOP
Loop
End
Und dann entprellen wir mal den Eingang mit einem Keramikkondensator. So wie hier in diesem Bild:
Bild hier
Statt dem 10n Kondensator kannst du es ruhig mal mit 100n versuchen.
Damit nicht sofort nach dem Starten des Programmes der Interrupt ausgelöst wird, musst du den µC ein wenig warten lassen. Das ganze Programm könnte dann in etwa so aussehen:
Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 24
$swstack = 10
$framesize = 24
Eingang Alias Pinb.1 'INT0
Ausgang Alias Portb.0
Config Ausgang = Output
WAITMS 100
Config Int0 = Rising
On Int0 On_int0
Enable Int0
Enable Interrupts
Do
Ausgang = 0
!NOP
Loop
End
On_int0:
Waitms 20
Ausgang = 1
Waitms 100
Ausgang = 0
Return
Mehr fällt mir im Moment nicht ein.
mfg
Gerold
:-)
Edit: Sorry, war etwas abgelenkt. Es fehlte der Stützkondensator.
.
Lesezeichen