no show...........
Druckbare Version
no show...........
hab jetzt eigentlich nur noch ein problem & zwar wird der ausgang ab & zu selber gesetzt ohne das ne taste gedrückt wird bzw ein interrupt impuls auslöst?!
hat wer ne idee
aktuelle code, hab sogar ne doppelte abfrage drinnen aber komischer weise gehts noch immer nicht.
hilft da vielleicht der debounce befehl?
Code:$regfile = "m8def.dat"
$baud = 9600
$crystal = 8000000
Set Pinb.2
Config Pinb.1 = Output
'LCD-Ausgabe
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2
'' Interrupt Int0 config
Config Int0 = Falling
On Int0 Irq0
Enable Interrupts
Enable Int0
Dim Irq0 As Word
Do
Cls
Cursor Off
Lcd Irq0
''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800
Abfrage:
If Pinb.2 = 0 Then
Waitms 250
If Pinb.2 = 0 Then
Gosub Rauf
Else
Gosub Halt
End If
End If
Waitms 100
If Irq0 > 6 Then
Gosub Halt
Irq0 = 0
Else
End If
Loop
'' bei Int0 wird irq0 um 1 erhöht
Irq0:
Incr Irq0
Return
'' wenn 800 impulse ereicht dann motor stopp
Halt:
Portb = &B00000000
Waitms 100
Return
'' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
Rauf:
Portb = &B11111111
Return
Hast Du womöglich irgendeine Störeinstrahlung z.B. von einem Handy oder Schnurlostelefon das in der Nähe liegt?
hy leute
hab mir gestern den l293d vom c geholt und heute alles mal zusammengestöpselt.
http://focus.ti.com/lit/ds/symlink/l293d.pdf
der en eingang vom 293 hängt über 10k auf vcc (5v)
die motoransteuerung erfolgt über pd5/ pd6
in das programm hab ich ne zusätzliche abfrage für einen 2. taster eingebaut bzw das programm mit einer "rolo runter" subroutine erweitert
das ganze arbeitet eigentlich so wie es soll, nur ab & zu schaltet sich der motor ein, hab mal ein handy hingehalten und nen anruf getätigt aber da tut sich nichts, denk mal es liegt eventuell an der verdrahtung, da noch alles ein bisschen kreuz & quer liegt.
jedenfalls es funktioniert mal im groben so wie ich mir das seit langem gedacht hab.
taste 1 // motor links
taste2 // motor rechts
hier mal das programm
werd dem nächst den motor aufs fenster montieren und das rolo montieren, muss mir noch ein bisschen gedanken machen über die montierung.Code:$regfile = "m8def.dat"
$baud = 9600
$crystal = 8000000
Set Pinb.2
Set Pinb.1
Config Pind.5 = Output
Config Pind.6 = Output
'LCD-Ausgabe
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2
'' Interrupt Int0 config
Config Int0 = Falling
On Int0 Irq0
Enable Interrupts
Enable Int0
Dim Irq0 As Word
Do
Cls
Cursor Off
Lcd Irq0
''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800
Abfrage:
If Pinb.2 = 0 Then
Waitms 250
If Pinb.2 = 0 Then
Gosub Runter
Else
End If
End If
Waitms 100
If Pinb.1 = 0 Then
Waitms 250
If Pinb.1 = 0 Then
Gosub Rauf
Else
End If
End If
Waitms 100
If Irq0 > 10 Then
Gosub Halt
Irq0 = 0
Else
End If
Loop
'' bei Int0 wird irq0 um 1 erhöht
Irq0:
Incr Irq0
Return
'' wenn 800 impulse ereicht dann motor stopp
Halt:
Reset Portd.5
Reset Portd.6
waitms 100
Return
'' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
Rauf:
Set Portd.5
Reset Portd.6
Waitms 100
Return
Runter:
Reset Portd.5
Set Portd.6
Waitms 100
Return
eventuell werd ich vielleicht doch noch endschalter einbaunen sicherheitshalber, oder vielleicht genügt es ja wenn ich abgeschiermte leitungen verwende um störsignale zu vermeiden.
jedenfalls ein dank an alle die mir bei der realisierung geholfen haben!!!
hab in einem monat echt viel über meinen mega8 dazugelernt!!!! ;-))))
mfg
piri
ps. weitere dokumentation folgt!
Sind das fertige Rolladenmotore oder baust du die Motorengeschichte selbst?
Käufliche Motoren sind Wechselstrommotore.
War das dein fertiges Program oben, die Irq-Variable paßt?
Gibt einiges zu verbessern:
Also, die Tasterabfrage würde ich mit
DEBOUNCE Px.y , state , label [ , SUB]
machen, da der Taster dadurch entprellt wird.
Dann würde ich den Watchdog benutzen:
CONFIG WATCHDOG = time
steht einiges in der Hilfe über die Befehle.
Gibt immer was zu verbessern :-)