hy ich nochmals
hab schon wieder das gefühl einen funktionstüchtigen code produziert zu haben, hab mich nochmal im datenblatt schlau gemacht
hab mal die ein/ausgänge auf die pinc verlegt
und pind2 also int0 (was eh so is, aber bisschen neu)
hab alle teile vom code übersichtlichkeitshalber total getrennt, is glaub ich so einfacher & richtiger?!
hab das ganze auch getestet springt richtig
also vom programmablauf richtig
meine einzige sorge der irq0:
also bei jeden interrupt also impuls auf pind.2 erhöht irq0 um 1 bis irq0 800 erreicht hat und springt zum sprung halt!? würd das so passen?!
hier mal der aktuelle code
Code:
$regfile = "m8def.dat"
$baud = 9600
$crystal = 8000000
Config Pinc.1 = Input
Config Pinc.2 = Output
Config Pind.2 = Input
Dim Irq0 As Word
'' Interrupt Int0 config
On Int0 Irq0
Config Int0 = Rising
Enable Int0
Enable Interrupts
Do
''abfrage ob taste gedrückt
Abfrage:
If Pinc.1 = 1 Then
Goto Rauf
Else
Goto Halt
End If
Loop
'' bei interrupt auf pinb.2 dann erhöhen bis 800 erreicht ist
Irq0:
Incr Irq0
If Irq0 > 800 Then
Goto Halt
Else
Goto Rauf
End If
'' wenn 800 impulse ereicht dann motor stopp
Halt:
Reset Pinc.2
Return
'' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
Rauf:
Set Pinc.2
Return
danke fürs durchschauen
eventuell werd ich das ganze für die funktion runter morgen erweitern.
Lesezeichen