Was ist falsch am RC5 Programm Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
Was ist falsch am RC5 Programm |
|
|
|
|
BID = 448771
Elektromeister Gesprächig
Beiträge: 135
|
|
Hallo,
ich möchte das wen ich mit einer Universal Fernbedienung eine Taste drücke den dazugehörenden RC5 Code über das Hyperterminel gesendet wird.
Ich benutze das Pollin Board 2.0 und den Empfänger IC TSOP1738
ich denke das Programm wird stimmen aber ich bekomme den Code nicht zurück über das Hiperterminel gesendet.
Programm:
$regfile = "m8def.dat" ' ATmega8
$crystal = 1000000
$baud = 1200
Config Rc5 = Pind.3 ' PD3ist Eingang für TSOP1738
Portd.3 = 1 ' PullUp aktiv
Enable Interrupts ' Timer0 arbeitet im Hintergrund
Dim Address As Byte , Command As Byte
Dim Flag As Bit
Flag = 1
Do
Getrc5(address , Command)
If Flag = 1 Then
Print "Wait for command"
Flag = 0
End If
If Address <> 255 Then
Reset Command.7 ' Togglebit zurücksetzen
Cls
Print "Address: " ; Address ; " Command: " ; Command
Flag = 1
End If
Loop
End
Die universall Fernbedinung wo ich verwende sendet den RC5 Code.
was habe ich falsch gemacht
Danke
MFG
und so habe ich das IC angeschlossen an dem Pin 29 am Board:
[ Diese Nachricht wurde geändert von: Elektromeister am 7 Aug 2007 18:05 ] |
|
BID = 448776
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Der TSOP1738 hat einen Demodulator für 38kHz, der RC5-Kode wird aber mit 36kHz moduliert.
Schau mal mit dem Oszilloskop nach, ob überhaupt ein Biphasenkode aus dem TSOP1738 herauskommt. (Also ob der dennoch den RC5-Kode richtig demoduliert.)
Dann:
In der Dokumentation zu BASCOM ist beschrieben, wie man rel. resourcenfressend den RC5-Kode lesen kann.
Schau da mal nach, auch, ob deine Definition von Rc5pin richtig ist. Ich habe kein BASCOM mehr und bin auch nicht traurig drüber.
Mit der Flagge Flag würd ich das nicht machen, wenn dann so etwa:
Do
GetRC5(Adresse,Kommando)
If Adresse <> 255 Then
Kommando = Kommando And 127 'Bit7 rausmaskieren
Print "RC5-Kode erhalten:"
Print "Adresse: ";Adresse; ", Kommando: ";Kommando;"."
End If
Loop
Das ist zwar kein guter Stil, da permanent geschaut wird, ob ein entschlüsselbarer Wert anliegt, aber so sollte es klappen. Vorausgesetzt, du hast die IO-Sachen richtig eingestellt, und zwar nicht, wie man das rational machen würde, sondern so, wie BASCOM das verlangt...
Außerdem natürlich, dass der TSOP1738 überhaupt ein ordentliches Signal ausspuckt.
PS: schalte mal parallel zu dessen Versorgung noch einen Elko mit 1µF -10µF und einen Keramikkondensator 100nF.
viel Erfolg
_________________
[ Diese Nachricht wurde geändert von: DonComi am 7 Aug 2007 18:17 ] |
|
BID = 448942
Elektromeister Gesprächig
Beiträge: 135
|
@ DonComi
Danke für deinen Tip
haste recht es geht nicht mit 38kHz. Ich habe jetzt einen SFH5110-36
verwendet und siehe da es funst.
PS: Das Programm von mir geht wunder bar
|
BID = 449019
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Natürlich geht dein Programm. Mein Vorschalg war ja nur, wie man es auch noch hätte machen können.
Dein Reset Command.7 ist das gleiche, was ich mit Command = Command And 127 gemacht habe. Der einzige Unterschied ist, dass ich keine extra Flagge benutzt habe.
Aber ist ja schön, dass es klappt
_________________
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag heute wurden bisher 10 Beiträge verfasst © x sparkkelsputz Besucher : 182396851 Heute : 4047 Gestern : 7548 Online : 634 25.11.2024 14:52 11 Besucher in den letzten 60 Sekunden alle 5.45 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0680780410767
|