| |
|
|
Penguin Tux | Moin XProfaner,
nachdem mein Netzwerktool fertig ist, fragt mich ein Freund ob ich in der Lage bin, ihm ein Tool zu schreiben, welches LED´s an und ausschalten kann. Ich dachte natürlich sofort an den COM-Port, aber die fehlen am Eee-PC ja völlig. Also kam mir die Idee das Ganze mit einem USB-COM-Adapter zu machen. Die Oberfläche für das Tool ist schon fertig, ich muss sie halt nur noch mit Leben füllen. Rein von der E-Technik weiß ich wie das läuft, aber programmiermäßig siehts schon wieder mau aus. Selbstverständlich habe ich die XProfan-Hilfe befragt und habe weder unter COM noch unter EIA-232 sowie unter RS-232 etwas brauchbares gefunden. Jetzt zähle ich mal wieder auf euch...
MfG Tony |
|
|
| |
|
|
|
| Bist hier richtig oder soll ich verschieben?
Hauptseite » IDE, Helfer, Tools und Precompiler » Profan2Cpp-Support, Profansource nach C++ |
|
|
| |
|
|
|
Penguin Tux | Oh, mein Fehler. Tut mir leid, natürlich sollst du verschieben. |
|
|
| |
|
|
|
| Fühl Dich geschoben... |
|
|
| |
|
|
|
GDL | Hi,
hier ist von vielen Communityautoren und mir Zusammengetragenes. Vielleicht hilft es dir was. KompilierenMarkierenSeparierenDef Createfile(7) !"kernel32.dll","CreateFileA"
Def Getlasterror(0) !"kernel32.dll","GetLastError"
Def Formatmessage(7) !"Kernel32.dll","FormatMessageA"
Def Escapecommfunction(2) !"kernel32.dll","EscapeCommFunction"
Def Getcommmodemstatus(2) !"kernel32.dll","GetCommModemStatus"
Def &Clrbreak 0
Def &Clrdtr 6
Def &Clrrts 4
Def &Setbreak 8
Def &Setdtr 5
Def &Setrts 3
Def &Setxoff 1
Def &Setxon 2
Def &Cts_on $10
Def &Dsr_on $20
Def &Ring_on $40
Def &Rlsd_on $80
Declare Hport& porthandle
Declare Modemstatus& Modemstatus
Declare Ret&, Message#
Proc Lasterrorstring nur um den Text des letzten Fehlers von GetLastError zu bekommen
Dim Message#,1029
Declare Buffer&, Flags&,Source&,Language&,Arguments&, Errorstring$
Buffer& = 1024
Flags& = $1000
Language& = 0~lang_neutral
Clear Message#
Formatmessage((Flags&),Addr(Source&),Getlasterror(),(Language&),Message#,Addr(Buffer&),Addr(Arguments&))
Errorstring$ = Trim$(String$(Message#,0))
Dispose Message#
Return Errorstring$
Endproc
Hport& = Createfile("COM2",0,0,0,3,0,0)opencom("COM2",1024,1024)
Print "Porthandle :",Hport&
Print
Ret& = Escapecommfunction(Hport&,&Setdtr)
Print "DTR setzen"
Case Ret& = 0 : Print "Fehler"
Print Lasterrorstring()
Ret& = Escapecommfunction(Hport&,&clrdtr)
Print "DTR rücksetzen"
Case Ret& = 0 : Print "Fehler"
Print Lasterrorstring()
waitinput
-----am besten einen Schalter zwischen DTR und z.B. CTS setzen
Ret& = Getcommmodemstatus(Hport&,Addr(Modemstatus&))
Print
Print "Status der Eingänge ermitteln"
Case Ret& = 0 : Print "Fehler"
Print Lasterrorstring()
-----Maskierung um an die einzelnen Bits zu kommen
If Ret&
Casenot Modemstatus& & $Ff : Print "alles auf LOW"
Case Modemstatus& & &Cts_on : Print "CTS ON"
Case Modemstatus& & &Dsr_on : Print "DSR ON"
Case Modemstatus& & &Ring_on : Print "Ring ON"
Case Modemstatus& & &Rlsd_on : Print "RLSD ON"
Endif
Waitinput
Print "Start"
Declare Zeit&,Stop&,Count&
Zeit& = &Gettickcount
Whilenot Stop&
Whileloop 10
Ret& = Getcommmodemstatus(Hport&,Addr(Modemstatus&))
print modemstatus&,"";
Inc Count&
Endwhile
Sleep 1
Case &Gettickcount - Zeit& > 50 : Stop& = 1
Endwhile
Print ""
Print &Gettickcount - Zeit&
Print "durchläufe :",Count&
Closecom(Hport&)
Waitinput
Achtung : Der USB COM Adapter erzeugt einen virtuellen COM Port.Du musst die Adresse von dem im Programm dann nehmen.
Sämtliche Steuerleitungen geben +12 V bzw. Masse aus.Die Schreibleitung +/- 12 bis max. 20 Volt. Keine Leitung kann eine LED direkt treiben.Du brauchst eine Transistortreiberstufe. Machste an der USB "Mist" ist garantiert dein Mainboard hin.Also schön mit Optokoppler arbeiten. Das allerbeste ist natürlich ein MAX232 Spannungspegelwandler.
Hier wird auch die Computeranbindung gut beschrieben : [...]
Hier gehts auch um USB - Seriell [...]
Servus Georg |
|
|
| |
|
|