Archiv verlassen und diese Seite im Standarddesign anzeigen : TASTER
Moinsen! :D
Ich möchte einen Taster benutzen. Das eine Ende muss an einen freien PIN, das ist klar - das andere Ende an GND oder VCC?
Und welcher Source ist notwendig?
Ich hab noch sowas in Erinnerung:
...
Config PortA As Input
PortA.2 = 1
If PortA.2 = 1 Then....
...
Gruß, Björn
Hallo!!
Also du must an den taster GND anschließen!
Der Code zum Abfragen (beim mega8) wäre dann so:
$regfile = "m8def.dat"
$crystal = 1000000
Config porta =input
Do
If Pina.1 = 0 Then
......
usw.
loop
end
Hoffe ich konnte dir weiterhelfen! O:)
MFG
NRG
und den pullup-widerstand solltest du noch aktivieren. nach dem config... noch porta.1 = 1
Jo das hab ich selbst noch rausgefunden :D
Geht jetzt...
Gruß, Björn
bubu0101
21.07.2005, 20:45
mit bascom 1.11.7.4 musste es
if pina.x=1 heissen
Taster haben leider die unangenehme Eigenschaft, dass sie gern prellen. Bei manchen Programmen kann das zum Problem werden :-k
Entprellen kannst du hardwaremäßig oder per Software :)
Hi
$regfile = "m8def.dat"
$crystal = 1000000
Config porta =input
porta.1 = 1
Do
If Pina.1 = 0 Then
Waitms 250 ' 1/4 Sek. Pause (genügt bei mir zum entprellen)
if Pina.1 = 0 Then ' mach was
......
usw.
loop
end
mfg,MX3
Ist doch eigendlich egal ob GND oder VCC. Hauptsache es sind eindeutige Signale! Wie du sie auswertest bleibt dir überlasssen.
hmmm weiß jemand wie ich das prog umschreiben muss, damit ich ein + signal auswerten kann?! also vcc?!
meins schaut so aus funzt aba nich!
$regfile = "m8def.dat"
$crystal = 8000000
Config Portc = Input
Portc.2 = 1
Config Portb = Output
Dim A As Integer
Do
If Pinc.2 = 1 Then
Set A
Else
Reset A
End If
If A = 1 Then
Portb.2 = 0
Portb.1 = 1
Else
Portb.1 = 0
Portb.2 = 1
End If
Loop
End
linux_80
19.02.2006, 17:30
Hallo,
ich würde mal überprüfen, was raus kommt wenn man ein Integer mit Set berarbeitet, ich denke mal da kommt nicht 1 raus.
Set ist normalerweise für Bitoperationen gedacht.
hmmm also selbst wenn ich es veränder funzt es net!!
$regfile = "m8def.dat"
$crystal = 8000000
Config Portc = Input
Portc.2 = 1
Config Portb = Output
Dim A As Integer
Do
If Pinc.2 = 1 Then
Portb.2 = 0
Portb.1 = 1
Else
Portb.2 = 0
Portb.1 = 1
End If
Loop
End
[glow=red:bb72ce7f22]
MFG
Nrgmc3[/glow:bb72ce7f22]
linux_80
20.02.2006, 22:15
So wie's ausschaut ist das Signal immer 1 wenn der Schalter nicht gedrückt ist, es wird also der Then-Teil ausgeführt.
Wie ist denn das alles verkabelt ?
Geht der Schalter gegen Masse wenn er gedrückt ist ?
Hi,
du machst in der Abfrage zweimal das gleiche.
...
Portb.2 = 0
Portb.1 = 1
Else
Portb.2 = 0
Portb.1 = 1
...
Da kann sich ja nix ändern ;)
Gruß
Christopher
upsi! ](*,)
doch selbst geändert geht es nich! ^^
@linux_80
"Geht der Schalter gegen Masse wenn er gedrückt ist ?"
Nein er soll ja gegen VCC gehen! des is ja grad des problem! ;)
MFG
Nrgmc3
Ganz einfach: ICs und Controler interpretieren kein Signal immer als 1. Wird der Schalter nicht gedrückt, existiert kein signal, da kein strom fließen kann, weil der Kreis einfach unterbrochen wird. Um 0 zu erhalten musst du Masse anlegen. D.h. dass er gegen Vcc geht ist nicht so einfach, wie es aussieht. Es sei denn, du benutzt ein IC zum negieren nach dem Schalter ;-)
Hi,
wenn du nach VCC schalten willst, solltest du den Pullup ausschalten und vom Pin einen Pulldown Widerstand gegen Masse machen.
Du setzt ja mit dem Pullup den Eingang High, da kann dann nix mehr mit VCC schalten, weil das ja auch High ist.
Muß also anders rum.
Gruß
christopher
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.