IOW24 und IR

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

IOW24 und IR

Post by zbr147 »

Hallo mal wieder ,


benötige ein wenig hilfe bei den Ansteuerung mit IR

wenn ich irgend ein Knopf auf meiner Fernbedienung drücke (egal welcher)
dann schaltet mein Relais an Port 0.0 ( schon mal gut )
somit weiss ich das meine Fernbedienung angenommen wird.

so und nun mochte ich gerne die daten auslesen welche die Fernbedienung
ausgibt.

habe folgendes probiert :

Code: Select all

Dim Res As Long
Dim data(2) As Byte
    
    ' Report ID auf  $0C (bzw 12) setzen
    data(0) = &HC
    data(1) = &H0
    data(2) = &H0
    ' zum IOW schreiben
    Res = IowKitWrite(iowHandles(0), 1, data(0), 3)
    Dim i As Integer
    i = 0
    'schleife bis 100 (100sek.)
    Do While (i < 100)
        Res = IowKitRead(iowHandles(0), 1, data(0), 3)
        i = i + 1
        'kurze Pause dazwischen
        Call verzoegerung(0.9)
        ' Label setzen
        lbl.Caption = data(1) & " ---- " & data(2) & " ---- " & i
    Loop 
aber irgendwie bringt er mir gar nichts?

Ich denke mal da ich mit der numpipe auf 1 und der Report-ID :$0C
richtig liege oder?


MFG Jörg
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: IOW24 und IR

Post by Guido Körber »

Im Prinzip schon, wenn man nun noch versucht 8 Bytes zu benutzen könnte es klappen. Die Special Mode Functions benutzen immer 7 Bytes plus ReportID.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

Hmmm,


habe nun alles probiert , aber ohne erfolg.
wenn ich mein programm starte ist alles ok , klick ich auf Code auslesen
bleibt mein prog kurz stehen bis ich irgendeine Taste auf meiner Fernbed.
drücke. Dann liefert er mir aber nur einen Array von 8 Bytes der aber leer ist?????

Sollte da nicht eine gewisse Bitfolge von meinem RC5 - Code drinstehen?
(Toggelbit usw.)

Oder kann es an meinem Port selber liegen?
Wie muss ich den Port 0.0 belegen?

weil derzeit hängt an dem Port noch mein Transistor und dannach mein Relais .
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

???

Port 0.0 ist der Eingang für das IR-Empfangssignal, da darf kein Transistor mit Relais dran betrieben werden.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

Wieso nicht ? bisher habe ich ohne IR gearbeitet. Und über die Ports
0.0 -0.7 Relais geschaltet.

Und nun möchte ich das ganze noch über IR regeln.

Zum probieren hab ich nun den Port 0.0 abgeklemmt und frei gelassen.

aber nun geht gar nichts mehr, sprich bei Read hängt er sich auf.
( ich weiss das er solange so bleibt bis sich was ändert)

aber auf meine Fernbedienung reagiert er nun nicht mehr??


MFG Jörg
supachris
Posts: 124
Joined: Tue Mar 16, 2004 12:30 am
Location: Dresden

Post by supachris »

Wie kommst du denn auf den Trichter, den P0.0 gleichzeitig für ein Relais und den IR-Empfang nutzen zu wollen? Das geht doch nicht. Das geht nur entweder-oder. Und wieso hast du jetzt freigelassen? Da muss doch der Datenanschluss des IR-Empfängers dran. Und dann kann da natürlich kein Relais dran. Wenn das Relais geklickt hat, als du auf die FB gedrückt hast, dann bedeutet das lediglich dass der Empfänger irgendwas(!) ausgespuckt hat, das muss kein gültiges RC5-Signal sein. Also so wie du das geplant hast, geht´s schon mal nicht.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

Hi,

das ich das so net gleichzeitig benutzen kann ist mir schon klar.
deswegen habe ich zu Testzwecken das Relais am Port 0.0 abgeklemmt
und dann den Jumper gesetzt um IR zu nutzen.

Meine frage war eigentlich so gemeint , ob ich ausser dem TSOP
der ja schon vorhanden ist auf meiner Platine, noch etwas zusätliches
benötige oder anschliessen(bzw. löten) muss?(wiederstand oder ...)

falls nicht bleibt der Port 0.0 leer ( was er momentan ja auch ist )
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Hört sichg nach einem Schaltungsfehler an. Die Schaltung aus dem Datenblatt ist die auf dem Starterkit verwendete, die tut.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

was ist mit "Schaltungsfehler" gemeint?

hab die Platine komplett so bestellt und zusammen gelötet.
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

zbr147 wrote:was ist mit "Schaltungsfehler" gemeint?

hab die Platine komplett so bestellt und zusammen gelötet.
Aha, das macht es erst mal einfacher. Ist der Jumper für den Empfänger drauf?

Wenn ja, dann ist nur noch die Frage ob etwas anderes mit am Pin hängt, das müsste dann auf jeden Fall ab.

Der nächste Test wäre dann ob es mit der mitgelieferten Spoftware geht, wenn es da schon hakt ist irgendwas faul.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

So nun gehts !


folgendes zur Problemlösung:

man kaufe eine programmierbare Fernbedienung die alle Codes
für Phillips beinhaltet,
(Denn meine FB die ich zuerst benutzt hatte war zwar RC5 >>>aber nicht der richtige Code!)

stelle Phillips ein , erstelle einen Button >> und schreibe folgenden Code dazu :

Code: Select all

Private Sub IR_auslesen_Click()
Dim Res As Long

'Arrays erstellen
Dim data(7) As Byte
Dim datanew(7) As Byte
    ' Report ID auf  $0C (bzw 12) setzen um IR anzusprechen
    data(0) = &HC
    ' IR = enabled
    data(1) = &H1

    ' zum IOW schreiben mit numpipe =1  für Specialmode
    Res = IowKitWrite(iowHandles(0), 1, data(0), 8)
    
    ' vom IOW lesen mit numpipe =1  für Specialmode und 8-Bytes lang
    Res = IowKitRead(iowHandles(0), 1, datanew(0), 8)

    ' Label setzen bzw. den gegebenen Code
    ' bzw eine Messagebox
    MsgBox datanew(1)
    lbl.Caption = "Data1:" & datanew(1)
    
    ' IR = disabled damit man im normal-Mode weiter machen kann
    data(0) = &HC
    data(1) = &H0
    
    ' zum IOW schreiben mit numpipe =1  für Specialmode
    Res = IowKitWrite(iowHandles(0), 1, data(0), 8)

End Sub

dann auf den Button klicken .

dann wartet der IOW bis man einen Knopf auf der FB drückt.
und nach dem drücken erscheint der RC-Code auf dem Label bzw MsgBox

falls man das ganze noch gleichzeitig zum normalen Programm laufen lassen möchte (bzw. in einer Schleife ) sollte das ganze mit Threads
gemacht werden.


Falls irgend etwas falsch ist, bitte ich um berrichtigung.
(ausser Schreibfehler) :lol:
Last edited by zbr147 on Mon Mar 21, 2005 12:41 pm, edited 1 time in total.
orange-blue
Posts: 28
Joined: Wed Feb 23, 2005 5:26 pm

Post by orange-blue »

funzt bei mir komischer weise immer noch nicht.
Er wartet bei mir nicht mal.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

Hmmm,


sollte er aber , denn die Read -Methode wartet solange bis sich was ändert!

hast Du auch den IOW24 Starterkit?
und welches Beispiel aus der SDK verwendest Du?
orange-blue
Posts: 28
Joined: Wed Feb 23, 2005 5:26 pm

Post by orange-blue »

sollte er aber , denn die Read -Methode wartet solange bis sich was ändert!
ja, is wirklich komisch...
Natürlich hab ich das 24er Kit und ich benutzt iowsample
Edit:
hmm... jezzt Funktionierts auf einmal... komisch!
Thx für die Hilfe!!
orange-blue
Posts: 28
Joined: Wed Feb 23, 2005 5:26 pm

Post by orange-blue »

Nächstes Problem: wenn ich IowKitReadImmediate aufrufe verlangt vb beim Parameter buffer ein byval, was aber nicht funktionieren kann, da ja nix in die variable gespeichert werden kann.
Post Reply