- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 18

Thema: Port über Taster ein und ausschalten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    wenn z.b Porta.1 ein High von Porta.0 bekommt
    Was meinst Du denn damit, dass PORTA.1 ein high von PORTA.0 bekommt? Hast Du die beiden Anschlüsse miteinander verbunden - und wenn ja, was für ein Gedanke steckt dahinter?

    Ganz einfach wäre es, wenn Dein Taster an einem Interrupt-fähigen Anschluss hängt. Lässt sich das hardwareseitig realisieren?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    Es geht eig. nicht um einen Taster. Hab die Frage nur so gestellt weils fast das gleiche ist. Ich empfange mit meinem Atmega die Position meines Joysticks über RS232 4 Achsen + die Knöpfe. Ich wollte das halt so haben das wenn ich einen Joystickknopf betätige ein belibieger Port auf High geht. Bis jetzt hatte ich es so:
    Code:
    If Button1_wert_integer= 1128 then 
    PORTA.0= 1 
    Else 
    PORTA.0= 0 
    End if
    Das Problem ist das die LED die jetzt am Porta.0 hängt Blinkt wenn ich den Knopf gedrückt halte keine Ahnung warum. Ich brauche es aber so das wenn ich einmal drauf drücke der Porta.0 auf ein schaltet und wenn ich wieder drauf drücke der Porta.0 auf aus schaltet. Wichtig ist das es keine Wait Funktionen gibt da der Atmega mein Flyduino mit Joystickdaten füttert und somit den Quadrocopter steuert. Da wären Wait Funktionen denke ich mal unangebracht
    Gruß Tjark

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Schreib es einfach so wie Neutro gepostet hat dann funktioniert es. Nur wenn du nen Taster benutzt, solltest du den noch entprellen. Wenn du kein Wait in der Software haben willst, musst du das entprellen hardwareseitig machen.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    Ok Aber das mit dem Flackern der LED. Woran kann das liegen wenn ich es so mache wie oben beschreiben ? Denn müsste mein Programm am Pc wenn ich den Taster drücke ja immer 1128 und denn wieder 0 ausgeben sonst würde die LED doch nur leuchten biss ich wieder los lasse oder ?
    Gruß Tjark

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    Nochmal zum entprellen ich habe mich jetzt informiert das Funktioniert Software seitig ja mit DEBOUNCE aber wie mache ich das Hardware seitig ?
    Gruß Tjark

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Schau mal hier:

    http://www.mikrocontroller.net/articles/Entprellung

    Und was meinst du mit dem flackern?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    Code:
    If Button1_wert_integer = 1128 then 
    PORTA.0 = 1 'Hier hängt die LED drann 
    else 
    PORTA.0 = 0 
    End If
    Wenn ich jetzt den Knopf auf meinem Joystick gedrückt halte müsste die LED ja solange leuchten biss ich wieder los lasse. Tut sie aber nicht sie blinkt extrem schnell bis ich wider los lasse. Liegt das am Bascom Programm oder daran das mein Joystick Programm fürn Pc 1128 und 0 hintereinander ausgibt wenn ich einen Knopf gedrückt halte ?
    Gruß Tjark

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.02.2010
    Ort
    Osdorf
    Alter
    30
    Beiträge
    127
    Hier mein VB code (ich weiß gehört hier nicht rein aber ich wollte keinen Anderen Tread eröffnen.
    Code:
    '' Erstellt mit SharpDevelop.
    ' Benutzer: Tjark Möller •.• 
    ' Datum: 03.03.2012
    ' Zeit: 20:32
    ' 
    ' Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
    '
    Imports System
    Imports System.Windows.Forms
    Imports Microsoft.DirectX.DirectInput
    Imports Microsoft.DirectX
    
    
    
    
    Public Partial Class MainForm
    	Public Sub New()
    		' The Me.InitializeComponent call is required for Windows Forms designer support.
    		Me.InitializeComponent()
    		serialport1.open
    		'
    		' TODO : Add constructor code after InitializeComponents
    		'
    	End Sub
    	Private applicationDevice As Device = Nothing
    Public Shared state As New JoystickState()
    
    
    
    
    Public Function InitDirectInput() As Boolean 
    
    
       
    	dim instance As DeviceInstance
    	For Each instance In Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)
    		applicationDevice = New Device(instance.InstanceGuid)
    		Exit For
    	Next instance
    
    
    	applicationDevice.SetDataFormat(DeviceDataFormat.Joystick)
    	applicationDevice.SetCooperativeLevel(Me, CooperativeLevelFlags.Exclusive Or CooperativeLevelFlags.Foreground)
    	Dim d As DeviceObjectInstance
    	For Each d In applicationDevice.Objects
    		If 0 <> (d.ObjectId And CInt(DeviceObjectTypeFlags.Axis)) Then
    			' Set the range for the axis.
    			applicationDevice.Properties.SetRange(ParameterHow.ById, d.ObjectId, New InputRange(+1, +255)) 
    		End If
    	Next d
    	Return True    
    End Function 'InitDirectInput
    Public Sub GetData()
    	If Nothing Is applicationDevice Then
    		Return
    	End If
    	Try
    		applicationDevice.Poll()
    		Catch inputex As InputException
    	If TypeOf inputex Is NotAcquiredException Or TypeOf inputex Is InputLostException Then
    		Try
    			applicationDevice.Acquire()
    			Catch
    			Return 
    		End Try
    	End If
    	End Try
    	Try
    		state = applicationDevice.CurrentJoystickState
    		Catch
    		Return
    	End Try
    	
    
    
    End Sub 
    
    
    	
    	Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs)
    		InitDirectInput
    	End Sub
    	
    	Sub Timer1Tick(ByVal sender As Object, ByVal e As EventArgs)
    		GetData() 
    'Axis----------------------------------------------------
    label1.Text="X = "+state.X.ToString()
    label2.Text="Y = "+state.Y.ToString()
    label3.Text="Z = "+state.Z.ToString()
    label4.Text="Rz = "+state.Rz.ToString()
    'Buttons-------------------------------------------------- 
    Label5.Text ="Button1 = "+state.GetButtons(0).Tostring 
    Label6.Text ="Button2 = "+state.GetButtons(1).Tostring 
    Label7.Text ="Button3 = "+state.GetButtons(2).Tostring 
    Label8.Text ="Button4 = "+state.GetButtons(3).Tostring 
    Label9.Text ="Button5 = "+state.GetButtons(4).Tostring 
    Label10.Text ="Button6 = "+state.GetButtons(5).Tostring 
    Label11.Text ="Button7 = "+state.GetButtons(6).Tostring 
    Label12.Text ="Button8 = "+state.GetButtons(7).Tostring 
    Label13.Text ="Button9 = "+state.GetButtons(8).Tostring 
    Label14.Text ="Button10 = "+state.GetButtons(9).Tostring 
    Label15.Text ="Button11 = "+state.GetButtons(10).Tostring 
    Label16.Text ="Button12 = "+state.GetButtons(11).Tostring 
    'Serialport Write-----------------------------------------
    If serialport1.IsOpen Then 
    'Axis-----------------------------------------------------
    serialport1.Write ("X" + (state.X).tostring + Chr(13))
    serialport1.Write ("Y" + (state.Y).tostring + Chr(13))
    serialport1.Write ("Z" + (state.Z).tostring + Chr(13))
    serialport1.Write ("Rz" + (state.Rz).tostring + Chr(13))
    'Buttons--------------------------------------------------
    SerialPort1.Write ("B1" + (state.GetButtons(0)).ToString & Chr(13))
    SerialPort1.Write ("B2" + (state.GetButtons(1)).ToString + Chr(13))
    SerialPort1.Write ("B3" + (state.GetButtons(2)).ToString + Chr(13))
    SerialPort1.Write ("B4" + (state.GetButtons(3)).ToString + Chr(13))
    SerialPort1.Write ("B5" + (state.GetButtons(4)).ToString + Chr(13))
    SerialPort1.Write ("B6" + (state.GetButtons(5)).ToString + Chr(13))
    SerialPort1.Write ("B7" + (state.GetButtons(6)).ToString + Chr(13))
    SerialPort1.Write ("B8" + (state.GetButtons(7)).ToString + Chr(13))
    SerialPort1.Write ("B9" + (state.GetButtons(8)).ToString + Chr(13))
    SerialPort1.Write ("B10" + (state.GetButtons(9)).ToString + Chr(13))
    SerialPort1.Write ("B11" + (state.GetButtons(10)).ToString + Chr(13))
    SerialPort1.Write ("B12" + (state.GetButtons(11)).ToString + Chr(13))
    
    
    
    
    end if
    	End Sub
    	
    	
    	Sub Label1Click(ByVal sender As Object, ByVal e As EventArgs)
    		
    	End Sub
    	
    	Sub MainFormLoad(ByVal sender As Object, ByVal e As EventArgs)
    		
    	End Sub
    End Class
    Gruß Tjark

Ähnliche Themen

  1. Taster soll neben serieller schnittstelle Port togglen
    Von aphex-world im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 10.01.2010, 11:01
  2. Led mit Taster ein- und ausschalten
    Von Nullinger im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 30.01.2009, 13:00
  3. 3 Taster von RN-LCD-Adapter mit einem Port abfragen
    Von masabuana im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 20.07.2007, 12:23
  4. LED Scheinwerfer über PortA an bzw ausschalten
    Von nooob im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 8
    Letzter Beitrag: 05.09.2006, 08:49
  5. Spannungssteuerung über Taster
    Von Strahleman im Forum Elektronik
    Antworten: 62
    Letzter Beitrag: 30.01.2006, 17:38

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress