PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ir-code erzeugen



super_castle
26.12.2005, 14:35
"And IR modulation by wiring directly into the main PCBoard. This can be encoded easily by
almost any small microprocessor. For modulating the signals yourself, the signal looks something like this:

Timing based On 1/1200 second Clock (~.833ms)
Signal is normally high (Idle, no IR).
Start: signal goes Low For 8/1200 sec.
Data bits: For each of 8 Data bits, space encoded signal depending On Bit value
Sends the most significant Data Bit first
If the Data Bit is 0: signal goes high For 1/1200 sec, And Low For 1/1200 sec.
If the Data Bit is 1: signal goes high For 4/1200 sec, And Low For 1/1200 sec.
BTW: The first Bit (Msb) is always 1 (valid codThe IR Carrier is 39.2kHz. Data is modulated using a space coded signal with 8 Data bits (Data Clock is 1200Hz,
but actual Data rate varies depending On the Data).

You can skip the IR es are from $80 To $FF)
When completed, signal goes high again.
No explicit Stop Bit. Minimal between signals is Not known."

Ich brauche ein Ir-code für oben. Die Ir-Frequenz ist 39,2khz.

Wer kann mir helfen den obengenannten Ir-code zu erzeugen ohne Interrupt usw. , einfach in einer ablaufenden Schleife. Wie ich gelesen habe sind es 8 Bit. Die Startlänge usw. sind angegeben. Es ist für einen Robby.

Castle

Dirk
26.12.2005, 15:51
Hallo castle,

beschreibst du da gerade den RC5- oder REC80-IR-Code, den der RP5 "spricht"???
Wenn ja...
Was möchtest du machen? Ein IR-Signal ZUM RP5 übertragen oder ein vom RP5 gesendetes Signal woanders empfangen?
Mit welcher anderen Hardware bzw. welchem uC möchtest du denn diese IR-Codes senden/empfangen?

Gruss Dirk

super_castle
26.12.2005, 16:08
Der Code geht zum Robosapien.
Ich möchte ein Ir-Signal senden, 8-Bit zum Roboter mit einem AVR16, 8mhz. Der Code soll an Bascom angelehnt sein.
Der gleiche Ir-Code wird von der Fernbedienung des Robby erzeugt.
Eigentlich ist der Code einfach gestrickt, aber ich kiege es nicht auf die Reihe den Code in die 39,2khz zu bringen.
Der Code soll kein Interrupt blockieren, er kann als normaler Ablauf geproggt sein, es kommt beim Ablauf des Ir-Codes nicht auf die Zeit an.

Ein Auszug :
The IR Carrier is 39.2kHz. Data is modulated using a space coded signal with 8 data bits (data clock is 1200Hz, but actual data rate varies depending on the data).

You can skip the IR and IR modulation by wiring directly into the main PCBoard. This can be encoded easily by almost any small microprocessor. For modulating the signals yourself, the signal looks something like this:

Timing based on 1/1200 second clock (~.833ms)
Signal is normally high (idle, no IR).
Start: signal goes low for 8/1200 sec.
Data bits: for each of 8 data bits, space encoded signal depending on bit value
Sends the most significant data bit first
If the data bit is 0: signal goes high for 1/1200 sec, and low for 1/1200 sec.
If the data bit is 1: signal goes high for 4/1200 sec, and low for 1/1200 sec.
BTW: The first bit (msb) is always 1 (valid codes are from $80 to $FF)
When completed, signal goes high again.
No explicit stop bit. Minimal between signals is not known.


Dieses Beispiel ist von WinAvr-C, es wird in der Frequenz vom RC5-Signal das high erzeugt:

void high(void)
{
uint8_t i,zaehler;

//890us Impuls mit 36kHz senden
//Bei 28us Periodendauer ergibt das 32 Impulse
for(i=0; i<32; i++)
{
IR_LED_ON;
for (zaehler=0; zaehler<18; zaehler++)
asm volatile("nop");
IR_LED_OFF;
for (zaehler=0; zaehler<18; zaehler++)
asm volatile("nop");
}
}



Castle