Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 841 → Rev 903

/Servo-Controlled IR-Transmitter/Software/irsndconfig.h
3,7 → 3,7
*
* Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
*
* $Id: irsndconfig.h,v 1.15 2010/11/10 08:01:46 fm Exp $
* $Id: irsndconfig.h,v 1.17 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
36,12 → 36,13
#define IRSND_SUPPORT_MATSUSHITA_PROTOCOL 0 // Matsushita >= 10000 uses ~200 bytes
#define IRSND_SUPPORT_KASEIKYO_PROTOCOL 1 // Kaseikyo >= 10000 uses ~150 bytes
#define IRSND_SUPPORT_RC5_PROTOCOL 1 // RC5 >= 10000 uses ~150 bytes
#define IRSND_SUPPORT_DENON_PROTOCOL 0 // DENON >= 10000 uses ~200 bytes
#define IRSND_SUPPORT_DENON_PROTOCOL 0 // DENON, Sharp >= 10000 uses ~200 bytes
#define IRSND_SUPPORT_JVC_PROTOCOL 1 // JVC >= 10000 uses ~150 bytes
#define IRSND_SUPPORT_RC6_PROTOCOL 0 // RC6 NOT SUPPORTED YET! DON'T CHANGE!
#define IRSND_SUPPORT_RC6_PROTOCOL 0 // RC6 >= 10000 uses ~250 bytes
#define IRSND_SUPPORT_RC6A_PROTOCOL 0 // RC6A >= 10000 uses ~250 bytes
#define IRSND_SUPPORT_BANG_OLUFSEN_PROTOCOL 0 // Bang&Olufsen >= 10000 uses ~250 bytes
#define IRSND_SUPPORT_GRUNDIG_PROTOCOL 1 // Grundig >= 10000 uses ~300 bytes
#define IRSND_SUPPORT_NOKIA_PROTOCOL 1 // Nokia >= 10000 uses ~400 bytes
#define IRSND_SUPPORT_NOKIA_PROTOCOL 0 // Nokia >= 10000 uses ~400 bytes
#define IRSND_SUPPORT_NUBERT_PROTOCOL 0 // NUBERT >= 10000 uses ~100 bytes
#define IRSND_SUPPORT_NIKON_PROTOCOL 1 // NIKON >= 10000 uses ~150 bytes
#define IRSND_SUPPORT_FDC_PROTOCOL 0 // FDC IR keyboard >= 10000 (better 15000) uses ~150 bytes
/Servo-Controlled IR-Transmitter/Software/irmp.h
3,7 → 3,7
*
* Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de
*
* $Id: irmp.h,v 1.44 2010/11/09 19:18:32 fm Exp $
* $Id: irmp.h,v 1.45 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
191,9 → 191,9
#define RC5_LSB 0 // MSB...LSB
#define RC5_FLAGS IRMP_PARAM_FLAG_IS_MANCHESTER // flags
 
#define DENON_PULSE_TIME 275.0e-6 // 275 usec pulse
#define DENON_1_PAUSE_TIME 1900.0e-6 // 1900 usec pause
#define DENON_0_PAUSE_TIME 775.0e-6 // 775 usec pause
#define DENON_PULSE_TIME 310.0e-6 // 310 usec pulse in practice, 275 in theory
#define DENON_1_PAUSE_TIME 1780.0e-6 // 1780 usec pause in practice, 1900 in theory
#define DENON_0_PAUSE_TIME 745.0e-6 // 745 usec pause in practice, 775 in theory
#define DENON_FRAMES 2 // DENON sends each frame 2 times
#define DENON_AUTO_REPETITION_PAUSE_TIME 65.0e-3 // inverted repetition after 65ms
#define DENON_FRAME_REPEAT_PAUSE_TIME 65.0e-3 // frame repeat after 65ms
/Servo-Controlled IR-Transmitter/Software/servo-IR.aws
1,0 → 0,0
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA88"/><Files><File00000 Name="D:\Pendsa\IR\Software\irmp.h" Position="266 94 1462 578" LineCol="0 0" State="Maximized"/><File00001 Name="D:\Pendsa\IR\Software\irsnd.c" Position="288 116 1476 570" LineCol="0 0" State="Maximized"/><File00002 Name="D:\Pendsa\IR\Software\irsnd.h" Position="310 138 1498 592" LineCol="0 0" State="Maximized"/><File00003 Name="D:\Pendsa\IR\Software\irsndconfig.h" Position="332 160 1520 614" LineCol="0 0" State="Maximized"/><File00004 Name="D:\Pendsa\IR\Software\irmpconfig.h" Position="354 182 1542 636" LineCol="0 0" State="Maximized"/><File00005 Name="c:\programme\winavr-20081205\avr\include\avr\iom88.h" Position="376 204 1564 658" LineCol="0 0" State="Maximized"/><File00006 Name="c:\programme\winavr-20081205\avr\include\avr\common.h" Position="398 226 1586 680" LineCol="0 0" State="Maximized"/><File00007 Name="D:\Pendsa\IR\Software\irmp.c" Position="420 248 1608 702" LineCol="0 0" State="Maximized"/><File00008 Name="D:\Pendsa\IR\Software\main.c" Position="262 71 1682 776" LineCol="0 0" State="Maximized"/><File00009 Name="c:\programme\winavr-20081205\avr\include\util\delay.h" Position="464 292 1652 746" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace>
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA88"/><Files><File00000 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irmp.h" Position="266 94 1462 578" LineCol="0 0" State="Maximized"/><File00001 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irsnd.c" Position="288 116 1476 570" LineCol="336 0" State="Maximized"/><File00002 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irsnd.h" Position="310 138 1498 592" LineCol="0 0" State="Maximized"/><File00003 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irsndconfig.h" Position="262 71 1682 776" LineCol="44 49" State="Maximized"/><File00004 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irmpconfig.h" Position="354 182 1542 636" LineCol="57 45" State="Maximized"/><File00005 Name="c:\programme\winavr-20081205\avr\include\avr\iom88.h" Position="376 204 1564 658" LineCol="0 0" State="Maximized"/><File00006 Name="c:\programme\winavr-20081205\avr\include\avr\common.h" Position="398 226 1586 680" LineCol="0 0" State="Maximized"/><File00007 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irmp.c" Position="420 248 1608 702" LineCol="0 0" State="Maximized"/><File00008 Name="D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\main.c" Position="442 270 1630 724" LineCol="0 0" State="Maximized"/><File00009 Name="c:\programme\winavr-20081205\avr\include\util\delay.h" Position="464 292 1652 746" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace>
/Servo-Controlled IR-Transmitter/Software/irsnd.c
3,7 → 3,7
*
* Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
*
* $Id: irsnd.c,v 1.26 2010/11/09 21:14:31 fm Exp $
* $Id: irsnd.c,v 1.29 2011/01/18 13:02:15 fm Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
315,6 → 315,10
}
 
 
#if IRSND_SUPPORT_SIRCS_PROTOCOL == 1
static uint8_t sircs_additional_bitlen;
#endif // IRSND_SUPPORT_SIRCS_PROTOCOL == 1
 
uint8_t
irsnd_send_data (IRMP_DATA * irmp_data_p, uint8_t do_wait)
{
327,6 → 331,9
#if IRSND_SUPPORT_RC5_PROTOCOL == 1
static uint8_t toggle_bit_rc5;
#endif
#if IRSND_SUPPORT_RC6_PROTOCOL == 1 || IRSND_SUPPORT_RC6A_PROTOCOL == 1
static uint8_t toggle_bit_rc6;
#endif
uint16_t address;
uint16_t command;
 
350,10 → 357,33
#if IRSND_SUPPORT_SIRCS_PROTOCOL == 1
case IRMP_SIRCS_PROTOCOL:
{
command = bitsrevervse (irmp_data_p->command, SIRCS_MINIMUM_DATA_LEN);
uint8_t sircs_additional_command_len;
uint8_t sircs_additional_address_len;
 
irsnd_buffer[0] = (command & 0x0FF0) >> 4; // CCCCCCCC
irsnd_buffer[1] = (command & 0x000F) << 4; // CCCC0000
sircs_additional_bitlen = (irmp_data_p->address & 0xFF00) >> 8; // additional bitlen
 
if (sircs_additional_bitlen > 15 - SIRCS_MINIMUM_DATA_LEN)
{
sircs_additional_command_len = 15 - SIRCS_MINIMUM_DATA_LEN;
sircs_additional_address_len = sircs_additional_bitlen - (15 - SIRCS_MINIMUM_DATA_LEN);
}
else
{
sircs_additional_command_len = sircs_additional_bitlen;
sircs_additional_address_len = 0;
}
 
command = bitsrevervse (irmp_data_p->command, 15);
 
irsnd_buffer[0] = (command & 0x7F80) >> 7; // CCCCCCCC
irsnd_buffer[1] = (command & 0x007F) << 1; // CCCC****
 
if (sircs_additional_address_len > 0)
{
address = bitsrevervse (irmp_data_p->address, 5);
irsnd_buffer[1] |= (address & 0x0010) >> 4;
irsnd_buffer[2] = (address & 0x000F) << 4;
}
irsnd_busy = TRUE;
break;
}
495,6 → 525,32
break;
}
#endif
#if IRSND_SUPPORT_RC6_PROTOCOL == 1
case IRMP_RC6_PROTOCOL:
{
toggle_bit_rc6 = toggle_bit_rc6 ? 0x00 : 0x08;
 
irsnd_buffer[0] = 0x80 | toggle_bit_rc6 | ((irmp_data_p->address & 0x00E0) >> 5); // 1MMMTAAA, MMM = 000
irsnd_buffer[1] = ((irmp_data_p->address & 0x001F) << 3) | ((irmp_data_p->command & 0xE0) >> 5); // AAAAACCC
irsnd_buffer[2] = (irmp_data_p->command & 0x1F) << 3; // CCCCC
irsnd_busy = TRUE;
break;
}
#endif
#if IRSND_SUPPORT_RC6A_PROTOCOL == 1
case IRMP_RC6A_PROTOCOL:
{
toggle_bit_rc6 = toggle_bit_rc6 ? 0x00 : 0x08;
 
irsnd_buffer[0] = 0x80 | 0x60 | ((irmp_data_p->address & 0x3000) >> 12); // 1MMMT0AA, MMM = 110
irsnd_buffer[1] = ((irmp_data_p->address & 0x0FFF) >> 4) ; // AAAAAAAA
irsnd_buffer[2] = ((irmp_data_p->address & 0x000F) << 4) | ((irmp_data_p->command & 0xF000) >> 12) | toggle_bit_rc6; // AAAACCCC
irsnd_buffer[3] = (irmp_data_p->command & 0x0FF0) >> 4; // CCCCCCCC
irsnd_buffer[4] = (irmp_data_p->command & 0x000F) << 4; // CCCC
irsnd_busy = TRUE;
break;
}
#endif
#if IRSND_SUPPORT_DENON_PROTOCOL == 1
case IRMP_DENON_PROTOCOL:
{
739,13 → 795,13
case IRMP_SIRCS_PROTOCOL:
{
startbit_pulse_len = SIRCS_START_BIT_PULSE_LEN;
startbit_pause_len = SIRCS_START_BIT_PAUSE_LEN;
startbit_pause_len = SIRCS_START_BIT_PAUSE_LEN - 1;
pulse_1_len = SIRCS_1_PULSE_LEN;
pause_1_len = SIRCS_PAUSE_LEN;
pause_1_len = SIRCS_PAUSE_LEN - 1;
pulse_0_len = SIRCS_0_PULSE_LEN;
pause_0_len = SIRCS_PAUSE_LEN;
pause_0_len = SIRCS_PAUSE_LEN - 1;
has_stop_bit = SIRCS_STOP_BIT;
complete_data_len = SIRCS_MINIMUM_DATA_LEN;
complete_data_len = SIRCS_MINIMUM_DATA_LEN + sircs_additional_bitlen;
n_auto_repetitions = (repeat_counter == 0) ? SIRCS_FRAMES : 1; // 3 frames auto repetition if first frame
auto_repetition_pause_len = SIRCS_AUTO_REPETITION_PAUSE_LEN; // 25ms pause
repeat_frame_pause_len = SIRCS_FRAME_REPEAT_PAUSE_LEN;
760,19 → 816,19
 
if (repeat_counter > 0)
{
startbit_pause_len = NEC_REPEAT_START_BIT_PAUSE_LEN;
startbit_pause_len = NEC_REPEAT_START_BIT_PAUSE_LEN - 1;
complete_data_len = 0;
}
else
{
startbit_pause_len = NEC_START_BIT_PAUSE_LEN;
startbit_pause_len = NEC_START_BIT_PAUSE_LEN - 1;
complete_data_len = NEC_COMPLETE_DATA_LEN;
}
 
pulse_1_len = NEC_PULSE_LEN;
pause_1_len = NEC_1_PAUSE_LEN;
pause_1_len = NEC_1_PAUSE_LEN - 1;
pulse_0_len = NEC_PULSE_LEN;
pause_0_len = NEC_0_PAUSE_LEN;
pause_0_len = NEC_0_PAUSE_LEN - 1;
has_stop_bit = NEC_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
785,11 → 841,11
case IRMP_SAMSUNG_PROTOCOL:
{
startbit_pulse_len = SAMSUNG_START_BIT_PULSE_LEN;
startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN;
startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
pulse_1_len = SAMSUNG_PULSE_LEN;
pause_1_len = SAMSUNG_1_PAUSE_LEN;
pause_1_len = SAMSUNG_1_PAUSE_LEN - 1;
pulse_0_len = SAMSUNG_PULSE_LEN;
pause_0_len = SAMSUNG_0_PAUSE_LEN;
pause_0_len = SAMSUNG_0_PAUSE_LEN - 1;
has_stop_bit = SAMSUNG_STOP_BIT;
complete_data_len = SAMSUNG_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
802,11 → 858,11
case IRMP_SAMSUNG32_PROTOCOL:
{
startbit_pulse_len = SAMSUNG_START_BIT_PULSE_LEN;
startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN;
startbit_pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
pulse_1_len = SAMSUNG_PULSE_LEN;
pause_1_len = SAMSUNG_1_PAUSE_LEN;
pause_1_len = SAMSUNG_1_PAUSE_LEN - 1;
pulse_0_len = SAMSUNG_PULSE_LEN;
pause_0_len = SAMSUNG_0_PAUSE_LEN;
pause_0_len = SAMSUNG_0_PAUSE_LEN - 1;
has_stop_bit = SAMSUNG_STOP_BIT;
complete_data_len = SAMSUNG32_COMPLETE_DATA_LEN;
n_auto_repetitions = SAMSUNG32_FRAMES; // 2 frames
820,11 → 876,11
case IRMP_MATSUSHITA_PROTOCOL:
{
startbit_pulse_len = MATSUSHITA_START_BIT_PULSE_LEN;
startbit_pause_len = MATSUSHITA_START_BIT_PAUSE_LEN;
startbit_pause_len = MATSUSHITA_START_BIT_PAUSE_LEN - 1;
pulse_1_len = MATSUSHITA_PULSE_LEN;
pause_1_len = MATSUSHITA_1_PAUSE_LEN;
pause_1_len = MATSUSHITA_1_PAUSE_LEN - 1;
pulse_0_len = MATSUSHITA_PULSE_LEN;
pause_0_len = MATSUSHITA_0_PAUSE_LEN;
pause_0_len = MATSUSHITA_0_PAUSE_LEN - 1;
has_stop_bit = MATSUSHITA_STOP_BIT;
complete_data_len = MATSUSHITA_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
838,11 → 894,11
case IRMP_KASEIKYO_PROTOCOL:
{
startbit_pulse_len = KASEIKYO_START_BIT_PULSE_LEN;
startbit_pause_len = KASEIKYO_START_BIT_PAUSE_LEN;
startbit_pause_len = KASEIKYO_START_BIT_PAUSE_LEN - 1;
pulse_1_len = KASEIKYO_PULSE_LEN;
pause_1_len = KASEIKYO_1_PAUSE_LEN;
pause_1_len = KASEIKYO_1_PAUSE_LEN - 1;
pulse_0_len = KASEIKYO_PULSE_LEN;
pause_0_len = KASEIKYO_0_PAUSE_LEN;
pause_0_len = KASEIKYO_0_PAUSE_LEN - 1;
has_stop_bit = KASEIKYO_STOP_BIT;
complete_data_len = KASEIKYO_COMPLETE_DATA_LEN;
n_auto_repetitions = (repeat_counter == 0) ? KASEIKYO_FRAMES : 1; // 2 frames auto repetition if first frame
856,11 → 912,11
case IRMP_RECS80_PROTOCOL:
{
startbit_pulse_len = RECS80_START_BIT_PULSE_LEN;
startbit_pause_len = RECS80_START_BIT_PAUSE_LEN;
startbit_pause_len = RECS80_START_BIT_PAUSE_LEN - 1;
pulse_1_len = RECS80_PULSE_LEN;
pause_1_len = RECS80_1_PAUSE_LEN;
pause_1_len = RECS80_1_PAUSE_LEN - 1;
pulse_0_len = RECS80_PULSE_LEN;
pause_0_len = RECS80_0_PAUSE_LEN;
pause_0_len = RECS80_0_PAUSE_LEN - 1;
has_stop_bit = RECS80_STOP_BIT;
complete_data_len = RECS80_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
874,11 → 930,11
case IRMP_RECS80EXT_PROTOCOL:
{
startbit_pulse_len = RECS80EXT_START_BIT_PULSE_LEN;
startbit_pause_len = RECS80EXT_START_BIT_PAUSE_LEN;
startbit_pause_len = RECS80EXT_START_BIT_PAUSE_LEN - 1;
pulse_1_len = RECS80EXT_PULSE_LEN;
pause_1_len = RECS80EXT_1_PAUSE_LEN;
pause_1_len = RECS80EXT_1_PAUSE_LEN - 1;
pulse_0_len = RECS80EXT_PULSE_LEN;
pause_0_len = RECS80EXT_0_PAUSE_LEN;
pause_0_len = RECS80EXT_0_PAUSE_LEN - 1;
has_stop_bit = RECS80EXT_STOP_BIT;
complete_data_len = RECS80EXT_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
904,6 → 960,38
break;
}
#endif
#if IRSND_SUPPORT_RC6_PROTOCOL == 1
case IRMP_RC6_PROTOCOL:
{
startbit_pulse_len = RC6_START_BIT_PULSE_LEN;
startbit_pause_len = RC6_START_BIT_PAUSE_LEN - 1;
pulse_len = RC6_BIT_LEN;
pause_len = RC6_BIT_LEN;
has_stop_bit = RC6_STOP_BIT;
complete_data_len = RC6_COMPLETE_DATA_LEN_SHORT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
repeat_frame_pause_len = RC6_FRAME_REPEAT_PAUSE_LEN;
irsnd_set_freq (IRSND_FREQ_36_KHZ);
break;
}
#endif
#if IRSND_SUPPORT_RC6A_PROTOCOL == 1
case IRMP_RC6A_PROTOCOL:
{
startbit_pulse_len = RC6_START_BIT_PULSE_LEN;
startbit_pause_len = RC6_START_BIT_PAUSE_LEN - 1;
pulse_len = RC6_BIT_LEN;
pause_len = RC6_BIT_LEN;
has_stop_bit = RC6_STOP_BIT;
complete_data_len = RC6_COMPLETE_DATA_LEN_LONG;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
repeat_frame_pause_len = RC6_FRAME_REPEAT_PAUSE_LEN;
irsnd_set_freq (IRSND_FREQ_36_KHZ);
break;
}
#endif
#if IRSND_SUPPORT_DENON_PROTOCOL == 1
case IRMP_DENON_PROTOCOL:
{
910,15 → 998,15
startbit_pulse_len = 0x00;
startbit_pause_len = 0x00;
pulse_1_len = DENON_PULSE_LEN;
pause_1_len = DENON_1_PAUSE_LEN;
pause_1_len = DENON_1_PAUSE_LEN - 1;
pulse_0_len = DENON_PULSE_LEN;
pause_0_len = DENON_0_PAUSE_LEN;
pause_0_len = DENON_0_PAUSE_LEN - 1;
has_stop_bit = DENON_STOP_BIT;
complete_data_len = DENON_COMPLETE_DATA_LEN;
n_auto_repetitions = DENON_FRAMES; // 2 frames, 2nd with inverted command
auto_repetition_pause_len = DENON_AUTO_REPETITION_PAUSE_LEN; // 65 ms pause after 1st frame
repeat_frame_pause_len = DENON_FRAME_REPEAT_PAUSE_LEN;
irsnd_set_freq (IRSND_FREQ_32_KHZ);
irsnd_set_freq (IRSND_FREQ_38_KHZ); // in theory 32kHz, in practice 38kHz
break;
}
#endif
926,11 → 1014,11
case IRMP_NUBERT_PROTOCOL:
{
startbit_pulse_len = NUBERT_START_BIT_PULSE_LEN;
startbit_pause_len = NUBERT_START_BIT_PAUSE_LEN;
startbit_pause_len = NUBERT_START_BIT_PAUSE_LEN - 1;
pulse_1_len = NUBERT_1_PULSE_LEN;
pause_1_len = NUBERT_1_PAUSE_LEN;
pause_1_len = NUBERT_1_PAUSE_LEN - 1;
pulse_0_len = NUBERT_0_PULSE_LEN;
pause_0_len = NUBERT_0_PAUSE_LEN;
pause_0_len = NUBERT_0_PAUSE_LEN - 1;
has_stop_bit = NUBERT_STOP_BIT;
complete_data_len = NUBERT_COMPLETE_DATA_LEN;
n_auto_repetitions = NUBERT_FRAMES; // 2 frames
944,11 → 1032,11
case IRMP_BANG_OLUFSEN_PROTOCOL:
{
startbit_pulse_len = BANG_OLUFSEN_START_BIT1_PULSE_LEN;
startbit_pause_len = BANG_OLUFSEN_START_BIT1_PAUSE_LEN;
startbit_pause_len = BANG_OLUFSEN_START_BIT1_PAUSE_LEN - 1;
pulse_1_len = BANG_OLUFSEN_PULSE_LEN;
pause_1_len = BANG_OLUFSEN_1_PAUSE_LEN;
pause_1_len = BANG_OLUFSEN_1_PAUSE_LEN - 1;
pulse_0_len = BANG_OLUFSEN_PULSE_LEN;
pause_0_len = BANG_OLUFSEN_0_PAUSE_LEN;
pause_0_len = BANG_OLUFSEN_0_PAUSE_LEN - 1;
has_stop_bit = BANG_OLUFSEN_STOP_BIT;
complete_data_len = BANG_OLUFSEN_COMPLETE_DATA_LEN;
n_auto_repetitions = 1; // 1 frame
963,7 → 1051,7
case IRMP_GRUNDIG_PROTOCOL:
{
startbit_pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN;
startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN - 1;
pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
pause_len = GRUNDIG_OR_NOKIA_BIT_LEN;
has_stop_bit = GRUNDIG_OR_NOKIA_STOP_BIT;
980,7 → 1068,7
case IRMP_NOKIA_PROTOCOL:
{
startbit_pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN;
startbit_pause_len = GRUNDIG_OR_NOKIA_PRE_PAUSE_LEN - 1;
pulse_len = GRUNDIG_OR_NOKIA_BIT_LEN;
pause_len = GRUNDIG_OR_NOKIA_BIT_LEN;
has_stop_bit = GRUNDIG_OR_NOKIA_STOP_BIT;
1012,12 → 1100,12
case IRMP_FDC_PROTOCOL:
{
startbit_pulse_len = FDC_START_BIT_PULSE_LEN;
startbit_pause_len = FDC_START_BIT_PAUSE_LEN;
startbit_pause_len = FDC_START_BIT_PAUSE_LEN - 1;
complete_data_len = FDC_COMPLETE_DATA_LEN;
pulse_1_len = FDC_PULSE_LEN;
pause_1_len = FDC_1_PAUSE_LEN;
pause_1_len = FDC_1_PAUSE_LEN - 1;
pulse_0_len = FDC_PULSE_LEN;
pause_0_len = FDC_0_PAUSE_LEN;
pause_0_len = FDC_0_PAUSE_LEN - 1;
has_stop_bit = FDC_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
1030,12 → 1118,12
case IRMP_RCCAR_PROTOCOL:
{
startbit_pulse_len = RCCAR_START_BIT_PULSE_LEN;
startbit_pause_len = RCCAR_START_BIT_PAUSE_LEN;
startbit_pause_len = RCCAR_START_BIT_PAUSE_LEN - 1;
complete_data_len = RCCAR_COMPLETE_DATA_LEN;
pulse_1_len = RCCAR_PULSE_LEN;
pause_1_len = RCCAR_1_PAUSE_LEN;
pause_1_len = RCCAR_1_PAUSE_LEN - 1;
pulse_0_len = RCCAR_PULSE_LEN;
pause_0_len = RCCAR_0_PAUSE_LEN;
pause_0_len = RCCAR_0_PAUSE_LEN - 1;
has_stop_bit = RCCAR_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
1053,12 → 1141,12
}
 
startbit_pulse_len = JVC_START_BIT_PULSE_LEN;
startbit_pause_len = JVC_START_BIT_PAUSE_LEN;
startbit_pause_len = JVC_START_BIT_PAUSE_LEN - 1;
complete_data_len = JVC_COMPLETE_DATA_LEN;
pulse_1_len = JVC_PULSE_LEN;
pause_1_len = JVC_1_PAUSE_LEN;
pause_1_len = JVC_1_PAUSE_LEN - 1;
pulse_0_len = JVC_PULSE_LEN;
pause_0_len = JVC_0_PAUSE_LEN;
pause_0_len = JVC_0_PAUSE_LEN - 1;
has_stop_bit = JVC_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
1072,12 → 1160,12
case IRMP_NIKON_PROTOCOL:
{
startbit_pulse_len = NIKON_START_BIT_PULSE_LEN;
startbit_pause_len = 271; // NIKON_START_BIT_PAUSE_LEN;
startbit_pause_len = 271 - 1; // NIKON_START_BIT_PAUSE_LEN;
complete_data_len = NIKON_COMPLETE_DATA_LEN;
pulse_1_len = NIKON_PULSE_LEN;
pause_1_len = NIKON_1_PAUSE_LEN;
pause_1_len = NIKON_1_PAUSE_LEN - 1;
pulse_0_len = NIKON_PULSE_LEN;
pause_0_len = NIKON_0_PAUSE_LEN;
pause_0_len = NIKON_0_PAUSE_LEN - 1;
has_stop_bit = NIKON_STOP_BIT;
n_auto_repetitions = 1; // 1 frame
auto_repetition_pause_len = 0;
1168,12 → 1256,12
{
pulse_len = SAMSUNG_PULSE_LEN;
pause_len = (irsnd_buffer[current_bit / 8] & (1<<(7-(current_bit % 8)))) ?
SAMSUNG_1_PAUSE_LEN : SAMSUNG_0_PAUSE_LEN;
(SAMSUNG_1_PAUSE_LEN - 1) : (SAMSUNG_0_PAUSE_LEN - 1);
}
else if (current_bit == SAMSUNG_ADDRESS_LEN) // send SYNC bit (16th bit)
{
pulse_len = SAMSUNG_PULSE_LEN;
pause_len = SAMSUNG_START_BIT_PAUSE_LEN;
pause_len = SAMSUNG_START_BIT_PAUSE_LEN - 1;
}
else if (current_bit < SAMSUNG_COMPLETE_DATA_LEN) // send n'th bit
{
1181,7 → 1269,7
 
pulse_len = SAMSUNG_PULSE_LEN;
pause_len = (irsnd_buffer[cur_bit / 8] & (1<<(7-(cur_bit % 8)))) ?
SAMSUNG_1_PAUSE_LEN : SAMSUNG_0_PAUSE_LEN;
(SAMSUNG_1_PAUSE_LEN - 1) : (SAMSUNG_0_PAUSE_LEN - 1);
}
}
else
1193,22 → 1281,22
if (current_bit == 0) // send 2nd start bit
{
pulse_len = BANG_OLUFSEN_START_BIT2_PULSE_LEN;
pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN;
pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN - 1;
}
else if (current_bit == 1) // send 3rd start bit
{
pulse_len = BANG_OLUFSEN_START_BIT3_PULSE_LEN;
pause_len = BANG_OLUFSEN_START_BIT3_PAUSE_LEN;
pause_len = BANG_OLUFSEN_START_BIT3_PAUSE_LEN - 1;
}
else if (current_bit == 2) // send 4th start bit
{
pulse_len = BANG_OLUFSEN_START_BIT2_PULSE_LEN;
pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN;
pause_len = BANG_OLUFSEN_START_BIT2_PAUSE_LEN - 1;
}
else if (current_bit == 19) // send trailer bit
{
pulse_len = BANG_OLUFSEN_PULSE_LEN;
pause_len = BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN;
pause_len = BANG_OLUFSEN_TRAILER_BIT_PAUSE_LEN - 1;
}
else if (current_bit < BANG_OLUFSEN_COMPLETE_DATA_LEN) // send n'th bit
{
1217,11 → 1305,11
 
if (cur_bit_value == last_bit_value)
{
pause_len = BANG_OLUFSEN_R_PAUSE_LEN;
pause_len = BANG_OLUFSEN_R_PAUSE_LEN - 1;
}
else
{
pause_len = cur_bit_value ? BANG_OLUFSEN_1_PAUSE_LEN : BANG_OLUFSEN_0_PAUSE_LEN;
pause_len = cur_bit_value ? (BANG_OLUFSEN_1_PAUSE_LEN - 1) : (BANG_OLUFSEN_0_PAUSE_LEN - 1);
last_bit_value = cur_bit_value;
}
}
1297,6 → 1385,12
#if IRSND_SUPPORT_RC5_PROTOCOL == 1
case IRMP_RC5_PROTOCOL:
#endif
#if IRSND_SUPPORT_RC6_PROTOCOL == 1
case IRMP_RC6_PROTOCOL:
#endif
#if IRSND_SUPPORT_RC6A_PROTOCOL == 1
case IRMP_RC6A_PROTOCOL:
#endif
#if IRSND_SUPPORT_SIEMENS_PROTOCOL == 1
case IRMP_SIEMENS_PROTOCOL:
#endif
1307,7 → 1401,8
case IRMP_NOKIA_PROTOCOL:
#endif
 
#if IRSND_SUPPORT_RC5_PROTOCOL == 1 || IRSND_SUPPORT_SIEMENS_PROTOCOL == 1 || IRSND_SUPPORT_GRUNDIG_PROTOCOL == 1 || IRSND_SUPPORT_NOKIA_PROTOCOL == 1
#if IRSND_SUPPORT_RC5_PROTOCOL == 1 || IRSND_SUPPORT_RC6_PROTOCOL == 1 || IRSND_SUPPORT_RC6A_PROTOCOL == 1 || IRSND_SUPPORT_SIEMENS_PROTOCOL == 1 || \
IRSND_SUPPORT_GRUNDIG_PROTOCOL == 1 || IRSND_SUPPORT_NOKIA_PROTOCOL == 1
{
if (pulse_counter == pulse_len && pause_counter == pause_len)
{
1374,15 → 1469,51
first_pulse = (irsnd_buffer[current_bit / 8] & (1<<(7-(current_bit % 8)))) ? TRUE : FALSE;
}
}
else // if (irsnd_protocol == IRMP_RC5_PROTOCOL || irsnd_protocol == IRMP_SIEMENS_PROTOCOL)
else // if (irsnd_protocol == IRMP_RC5_PROTOCOL || irsnd_protocol == IRMP_RC6_PROTOCOL || irsnd_protocol == IRMP_RC6A_PROTOCOL ||
// irsnd_protocol == IRMP_SIEMENS_PROTOCOL)
#endif
{
if (current_bit == 0xFF) // 1 start bit
{
#if IRSND_SUPPORT_RC6_PROTOCOL == 1 || IRSND_SUPPORT_RC6A_PROTOCOL == 1
if (irsnd_protocol == IRMP_RC6_PROTOCOL || irsnd_protocol == IRMP_RC6A_PROTOCOL)
{
pulse_len = startbit_pulse_len;
pause_len = startbit_pause_len;
}
#endif
first_pulse = TRUE;
}
else // send n'th bit
{
#if IRSND_SUPPORT_RC6_PROTOCOL == 1 || IRSND_SUPPORT_RC6A_PROTOCOL == 1
if (irsnd_protocol == IRMP_RC6_PROTOCOL || irsnd_protocol == IRMP_RC6A_PROTOCOL)
{
pulse_len = RC6_BIT_LEN;
pause_len = RC6_BIT_LEN;
 
if (irsnd_protocol == IRMP_RC6_PROTOCOL)
{
if (current_bit == 4) // toggle bit (double len)
{
pulse_len = 2 * RC6_BIT_LEN;
pause_len = 2 * RC6_BIT_LEN;
}
}
else // if (irsnd_protocol == IRMP_RC6A_PROTOCOL)
{
if (current_bit == 4) // toggle bit (double len)
{
pulse_len = 2 * RC6_BIT_LEN + RC6_BIT_LEN; // hack!
pause_len = 2 * RC6_BIT_LEN;
}
else if (current_bit == 5) // toggle bit (double len)
{
pause_len = 2 * RC6_BIT_LEN;
}
}
}
#endif
first_pulse = (irsnd_buffer[current_bit / 8] & (1<<(7-(current_bit % 8)))) ? TRUE : FALSE;
}
 
1433,7 → 1564,8
}
break;
}
#endif // IRSND_SUPPORT_RC5_PROTOCOL == 1 || IRSND_SUPPORT_SIEMENS_PROTOCOL == 1 || IRSND_SUPPORT_GRUNDIG_PROTOCOL == 1 || IRSND_SUPPORT_NOKIA_PROTOCOL == 1
#endif // IRSND_SUPPORT_RC5_PROTOCOL == 1 || IRSND_SUPPORT_RC6_PROTOCOL == 1 || || IRSND_SUPPORT_RC6A_PROTOCOL == 1 || IRSND_SUPPORT_SIEMENS_PROTOCOL == 1 ||
// IRSND_SUPPORT_GRUNDIG_PROTOCOL == 1 || IRSND_SUPPORT_NOKIA_PROTOCOL == 1
 
default:
{
/Servo-Controlled IR-Transmitter/Software/irmpconfig.h
3,7 → 3,7
*
* Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
*
* $Id: irmpconfig.h,v 1.43 2010/11/10 08:01:46 fm Exp $
* $Id: irmpconfig.h,v 1.47 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
48,12 → 48,12
#define IRMP_SUPPORT_SAMSUNG_PROTOCOL 1 // Samsung + Samsung32 >= 10000 ~250 bytes
#define IRMP_SUPPORT_MATSUSHITA_PROTOCOL 0 // Matsushita >= 10000 ~50 bytes
#define IRMP_SUPPORT_KASEIKYO_PROTOCOL 1 // Kaseikyo >= 10000 ~250 bytes
#define IRMP_SUPPORT_DENON_PROTOCOL 0 // DENON >= 10000 ~250 bytes
#define IRMP_SUPPORT_DENON_PROTOCOL 0 // DENON, Sharp >= 10000 ~250 bytes
#define IRMP_SUPPORT_JVC_PROTOCOL 1 // JVC >= 10000 ~250 bytes
#define IRMP_SUPPORT_RC5_PROTOCOL 1 // RC5 >= 10000 ~250 bytes
#define IRMP_SUPPORT_RC6_PROTOCOL 0 // RC6 & RC6A >= 10000 ~200 bytes
#define IRMP_SUPPORT_GRUNDIG_PROTOCOL 1 // Grundig >= 10000 ~150 bytes
#define IRMP_SUPPORT_NOKIA_PROTOCOL 1 // Nokia >= 10000 ~150 bytes
#define IRMP_SUPPORT_NOKIA_PROTOCOL 0 // Nokia >= 10000 ~150 bytes
#define IRMP_SUPPORT_NUBERT_PROTOCOL 0 // NUBERT >= 10000 ~50 bytes
#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL 0 // Bang & Olufsen >= 10000 ~200 bytes
#define IRMP_SUPPORT_NIKON_PROTOCOL 1 // NIKON >= 10000 ~250 bytes
/Servo-Controlled IR-Transmitter/Software/Hex-Files/servo-IR.hex
1,14 → 1,14
:10000000A9C0C3C0C2C0C1C0C0C0BFC01BC3BDC0A7
:10001000BCC0BBC0BAC0B9C0B8C0B7C0B6C0B5C01C
:10002000B4C0B3C0B2C063C3A1C3CBC37BC534C427
:1000300083C4C2C477C576C50AC473C39EC472C5DF
:1000400071C5E0C403C56EC56DC56CC53AC56AC54A
:100050005FC5F3C51CC648C68DC77FC6A5C6DEC62C
:1000600089C788C75AC686C7B7C684C783C7F9C6B3
:1000700010C780C77FC77EC72EC77CC752C78FC730
:100080008EC78DC774C98BC78AC765C870C96FC949
:1000900086C76DC984C76BC96AC95DC85CC867C9B2
:1000A00066C965C97CC763C97AC701151B0A0E0AF0
:10002000B4C0B3C0B2C063C3D0C3FAC371C563C4A4
:10003000B4C4F3C46DC56CC539C4A2C3CFC468C50C
:1000400067C511C565C564C563C562C530C560C5F2
:1000500055C5E9C516C643C672C77AC6A1C6DAC673
:100060006EC76DC755C66BC7B3C669C768C7F5C647
:1000700066C765C764C763C712C761C737C774C798
:1000800073C772C759C970C76FC74AC855C954C921
:100090006BC752C969C750C94FC942C84DC94CC97D
:1000A0004BC94AC961C748C95FC701151B0A0E0A77
:1000B0000E0A0E0F14000F14000100020611133077
:1000C0000611061100101020200101000206111374
:1000D0003006110611000000000001010016070D96
20,9 → 20,9
:1001300000010C020485A50204576D0206060C0C92
:100140000100000F070E070E010101010000010B65
:100150001100010311241FBECFE5D4E0DEBFCDBFE7
:1001600010E0A0E6B0E0E8EBFFE102C005900D92E0
:1001600010E0A0E6B0E0E4E8FFE102C005900D92E7
:10017000AA36B107D9F711E0AAE6B0E001C01D9296
:10018000A937B107E1F78ED115CF3ACF9C01E1999C
:10018000AA37B107E1F78ED1FBCE3ACF9C01E199B6
:10019000FECF3FBB2EBBE09A8DB308959C01E19941
:1001A000FECF3FBB2EBB6DBB0FB6F894E29AE19A2F
:1001B0000FBE08958FE193E09BBD8ABD89E08EBD9F
53,23 → 53,23
:10034000C29710F481E00895C9018D579040C2977B
:1003500010F482E00895C9018F5A9040C29710F4BA
:1003600083E00895213E310510F084E0089580E097
:1003700008950F931F93CF93DF93E0E6F1E010828F
:100380001182128213821482359681E0E937F807D0
:1003700008950F931F93CF93DF93E1E6F1E010828E
:100380001182128213821482359681E0EA37F807CF
:10039000B1F7B29BFECF84EF91E020E931E0F901A3
:1003A0003197F1F70197D9F701E0C0E9D1E08AE58B
:1003B00091E0FAD78823C1F181E07CDF182F82E039
:1003C00079DF10925F01412F50E0682F70E0FB0150
:1003A0003197F1F70197D9F701E0C0E9D1E08BE58A
:1003B00091E0DFD78823C1F181E07CDF182F82E054
:1003C00079DF10926001412F50E0682F70E0FB014F
:1003D000EE0FFF1FE60FF71FEE0FFF1F9A01220F10
:1003E000331FCA01A5E0880F991FAA95E1F7821B68
:1003F000930BE80FF91FEC53FF4FAAE5B1E086E03D
:1003F000930BE80FF91FEB53FF4FABE5B1E086E03D
:100400000D9001928150E1F7FA01EE0FFF1FEE0F00
:10041000FF1FE40FF51FE60FF71FE05AFE4F0083A2
:10041000FF1FE40FF51FE60FF71FEF59FE4F008394
:1004200089E169E14AE0D5DE84E664EF71E0402FBE
:10043000F1DE80916A00882309F4B9CF013011F010
:1004400001E001C002E088E893E1FE013197F1F795
:100450000197D9F7B299ABCF8BE190E064EC70E0F3
:1004600046E950E02EEC30E054DD82E090E060E6BA
:1004700071E049E150E02EEC30E04BDD89E169E1CB
:100450000197D9F7B299ABCF8BE190E065EC70E0F2
:1004600046E950E02EEC30E03ADD82E090E061E6D3
:1004700071E049E150E02EEC30E031DD89E169E1E5
:100480004AE0A7DEB29BFECF84EF91E020E931E0A5
:10049000F9013197F1F70197D9F7DF91CF911F91CA
:1004A0000F9108958F929F92AF92BF92CF92DF9259
76,13 → 76,13
:1004B000EF92FF920F931F93CF93DF9388E087BB58
:1004C00084E088BB14BA8CE085BB80E881BB80ECFB
:1004D00082BBE199FECF21E030E03FBB2EBBE09A2A
:1004E0008DB3873E09F1E0E6F1E0108211821282BD
:1004F00013821482359681E0E937F807B1F7E19964
:1004E0008DB3873E09F1E1E6F1E0108211821282BC
:1004F00013821482359681E0EA37F807B1F7E19963
:10050000FECF3FBB2EBB87EE8DBB0FB6F894E29AB1
:10051000E19A0FBE82E090E060E671E049E150E0D0
:100520002EEC30E0F6DC12C084EC90E06BE170E081
:1005300046E950E026EC30E0D2DC80E691E062E073
:1005400070E049E150E026EC30E0C9DC2AD7A0D0C9
:10051000E19A0FBE82E090E061E671E049E150E0CF
:100520002EEC30E0DCDC12C085EC90E06BE170E09A
:1005300046E950E026EC30E0B8DC81E691E062E08C
:1005400070E049E150E026EC30E0AFDC0FD7A0D0FE
:100550008FE193E09BBD8ABD89E08EBD80E189BFBC
:10056000B29BFECF84EF91E020E931E0F9013197B1
:10057000F1F70197D9F7789473E6D72E63E6C62E84
90,421 → 90,418
:1005900002C0C12ED02EB29BECDE81E08BDE082F94
:1005A00082E088DE182FC02FD0E0E82EFF24FE0165
:1005B000EE0FFF1FEE0FFF1FEC0FFD1FEE0DFF1DD7
:1005C000E05AFE4F80818130E1F4D01611F4C1165B
:1005C000EF59FE4F80818130E1F4D01611F4C1164D
:1005D000C1F09798189DC0011124099D9001112424
:1005E000820F931F8C539F4F60E05FD05BD08823B6
:1005E000820F931F8B539F4F60E05FD05BD08823B7
:1005F000E9F788EE93E0F5013197F1F70197D9F724
:10060000979AFE01EE0FFF1FEE0FFF1FEC0FFD1F6D
:10061000EE0DFF1DE05AFE4F8081823009F0B9CF08
:10061000EE0DFF1DEF59FE4F8081823009F0B9CFFA
:100620009798189DC0011124099D90011124820FF3
:10063000931F8C539F4F60E038D034D08823E9F764
:10063000931F8B539F4F60E038D034D08823E9F765
:10064000979AA7CF1F920F920FB60F9211242F9354
:100650003F934F935F936F937F938F939F93AF934A
:10066000BF93EF93FF9363D2882309F4E0D7FF9100
:10066000BF93EF93FF9359D2882309F4C5D7FF9125
:10067000EF91BF91AF919F918F917F916F915F911A
:100680004F913F912F910F900FBE0F901F90189593
:10069000C398BB9A88E085BD85B5816085BD8DED29
:1006A00083BD0895809187000895CF93DF93EC0177
:1006B000662329F0809187008823E1F706C08091A6
:1006C0008700882311F080E02FC288818093880002
:1006C0008700882311F080E025C28881809388000C
:1006D0008D8180938F008091880090E0FC0131979C
:1006E000E631F10508F01EC2ED5EFF4F09948B81E3
:1006F0009C8120E030E04CE0220F331F80FD216020
:10070000415019F096958795F7CFC901807F9F706A
:10071000A4E096958795AA95E1F780938900822FAA
:1007200048C16B817C81398140E050E08EEE97E8D2
:1007300020E1440F551F80FD4160215019F096952E
:100740008795F7CF932F80E0862B972B20E030E022
:1007500060E1220F331F80FD2160615019F09695F2
:100760008795F7CF82E0809388008DC089819A8138
:1007700040E050E020E1440F551F80FD41602150D2
:1007800019F096958795F7CF8B819C8120E030E01A
:1007900060E1220F331F80FD2160615019F09695B2
:1007A0008795F7CF5093890040938A0030938B0050
:1007B00082E0809388008BE880938C00832F809563
:1007C00042C189819A8140E050E020E1440F551FE9
:1007D00080FD4160215019F096958795F7CF8B8168
:1007E0009C8120E030E060E1220F331F80FD21601A
:1007F000615019F096958795F7CF509389004093F3
:100800008A00932F92959F70822F807F892B8093EF
:100810008B00C90180709F702070307F20953095CB
:10082000432F42954F709C01B4E036952795BA95B9
:10083000E1F7422B40938C0080959095A4E096952B
:100840008795AA95E1F7807F80938D0068C18981A3
:100850009A8140E050E020E1440F551F80FD416047
:10086000215019F096958795F7CF8B819C8120E0D8
:1008700030E060E1220F331F80FD2160615019F0EC
:1008800096958795F7CF5093890040938A003093CF
:100890008B0020938C0043C189819A8140E050E015
:1008A00020E1440F551F80FD4160215019F09695BD
:1008B0008795F7CF8B819C8160E070E020E1660F27
:1008C000771F80FD6160215019F096958795F7CFCD
:1008D0005093890040938A00362F3F70852F829570
:1008E0008F70242F2F702827CA01807F9070B4E06A
:1008F00096958795BA95E1F7282740705F70252770
:100900002295207F322B30938B00872F82958F701A
:1009100080938C00607F7F70A4E076956795AA95A0
:10092000E1F760938D0020918B0080918C00909175
:100930008D0082278927C2C080918600882311F408
:1009400030E401C030E03093860029812770220F07
:10095000220F220F8B819C8188739070F3E0969513
:100960008795FA95E1F7282B2068232B209389009F
:100970008B818295880F807E42C08091850088237C
:1009800011F430E401C030E03093850029812F70EC
:10099000220F220F8B819C8180739070E4E09695EA
:1009A0008795EA95E1F7282B2068232B209389006F
:1009B0008B818295807F23C080918400882311F4ED
:1009C00040E401C040E0409384002B813C8126FD3F
:1009D00002C090E801C090E02072307075E036955A
:1009E00027957A95E1F789818F71880F822B942B57
:1009F000892B809389008B81880F880F880F8093C3
:100A00008A008DC08B819C8120E030E049E0220F7C
:100A1000331F80FD2160415019F096958795F7CFDF
:100A20008FEF8093890080EC80938A00C9019695AE
:100A3000879596958795806880938B00822F829505
:100A4000880F880F807C80938C0069C089819A818F
:100A500060E070E028E0660F771F80FD6160215044
:100A600019F096958795F7CF8B819C8120E030E037
:100A700048E0220F331F80FD2160415019F0969508
:100A80008795F7CF8FEB809389008FEF80938A0053
:100A900080E880938B00C901969587958068809344
:100AA0008C00279522272795CB0196958795282B93
:100AB00020938D00862F87958827879580938E00B9
:100AC0002EC089819A8120E030E044E0220F331F5C
:100AD00080FD2160415019F096958795F7CF8B8165
:100AE0009C8140E050E06CE0440F551F80FD416068
:100AF000615019F096958795F7CFCA0180709F7065
:100B00002295207F292B2093890040938A0007C0DB
:100B10008B818295880F880F807C8093890081E08B
:100B20008093870080918700DF91CF910895809115
:100B30008700882309F432C4509164005F3F09F0B4
:100B40001BC280916300882309F416C2409175008E
:100B5000442309F440C08091710090917200019685
:100B60009093720080937100209173003091740013
:100B70008217930708F444C010927200109271001B
:100B800080918800883029F480E1809364008FE1AF
:100B90001FC0809188008F3021F4809364008AE127
:100BA00017C080918800803109F0E6C1242F30E021
:100BB0002F5F3F4F8091760090E0281739072CF483
:100BC00087E18093640089E203C05093640081E16F
:100BD00080937700D1C140916F004423A1F0209110
:100BE0006B0030916C0080916D0090916E00281721
:100BF000390748F42F5F3F4F30936C0020936B0010
:100C000080918700089580918F00809370001092EA
:100C10006C0010926B001092820010928100109272
:100C200080008091880090E0FC013197E631F10569
:100C300008F0A0C1E75DFF4F099480E380937F0037
:100C40008CE090E090937E0080937D0088E180931B
:100C50007C008CE080937B0080937A008093790005
:100C60001092780080937700442311F081E001C056
:100C700083E08093760084EF91E0909374008093FA
:100C8000730090936E0080936D0087EC71C184EBCC
:100C900080937F00442349F08DE290E090937E00A2
:100CA00080937D001092770009C08AE590E09093D0
:100CB0007E0080937D0080E2809377009BE090939C
:100CC0007C0082E280937B0090937A00909379007D
:100CD00081E08093780080937600109274001092E7
:100CE000730080E293E03FC18AE580937F008AE54C
:100CF00090E090937E0080937D009BE090937C0039
:100D00008DE180937B0090937A0089E08093790055
:100D100091E09093780085E276C08AE580937F0029
:100D20008AE590E090937E0080937D009BE0909315
:100D30007C008DE180937B0090937A0089E0809322
:100D4000790081E08093780080E28093770082E0F0
:100D5000809376008CEA93E022C084E480937F0045
:100D600082E290E090937E0080937D0098E09093E3
:100D70007C0089E180937B0090937A0090937900C6
:100D800081E08093780080E380937700442311F022
:100D900081E001C082E08093760088EC95E090933A
:100DA000740080937300DFC023E020937F0085E907
:100DB00090E090937E0080937D0020937C0085E9F5
:100DC00080937B0020937A0082E68093790091E003
:100DD000909378008BE017C023E020937F0089E494
:100DE00090E090937E0080937D0020937C0085E9C5
:100DF00080937B0020937A0082E68093790091E0D3
:100E0000909378008CE08093770090937600109216
:100E100074001092730084E893E0A5C022E120934F
:100E20007F0082E190E090937E0080937D0020938C
:100E300062009093610080936000109278008DE0D2
:100E40008093770081E08093760010927400109276
:100E5000730084E893E090936E0080936D008DEDB5
:100E600087C02BE020937F0085E390E090937E0085
:100E700080937D00209362008BE090E0909361006E
:100E800080936000109278008AE08093770082E07F
:100E900017C02BE020937F0085E390E090937E00C5
:100EA00080937D00209362008BE090E0909361003E
:100EB000809360001092780081E18093770083E056
:100EC0008093760080E991E09093740080937300A2
:100ED00083E399E048C0442311F01092640084EB4E
:100EE00080937F008AE590E090937E0080937D0060
:100EF00080E1809377009BE090937C0082E2809376
:100F00007B0090937A009093790081E08093780041
:100F100080937600109274001092730088EB91E039
:100F200022C08CE280937F008FE091E090937E005E
:100F300080937D0082E0809377009AE090937C001C
:100F400086E480937B0090937A008EE18093790011
:100F500081E0809378008093760010927400109264
:100F6000730080EB94E090936E0080936D0081EDB0
:100F700083BD02C01092870080918700882309F406
:100F8000F8C1109263008091880090E0FC013197D5
:100F9000E631F10508F0EBC1E15CFF4F09944091A7
:100FA0008200442309F08DC0909164009F3F49F472
:100FB00080917F008093620080917D0090917E00FF
:100FC0007CC080917700981708F067C080918800F6
:100FD0008330D9F5903170F48BE080936200E92F73
:1006E000E631F10508F014C2ED5EFF4F09948A81EE
:1006F00080939000843010F450E002C0582F535083
:100700008B819C8120E030E04FE0220F331F80FD81
:100710002160415019F096958795F7CFC9018078EF
:100720009F77880F892F881F990B91958093890057
:10073000822F880F80938A00552309F4E6C18981AE
:100740009A8140E050E025E0440F551F80FD416054
:10075000215019F096958795F7CF80918A009A01DC
:1007600020713070A4E036952795AA95E1F7822B89
:1007700080938A00842F8295807F80938B00C5C1EF
:100780006B817C81398140E050E08EEE97E820E17A
:10079000440F551F80FD4160215019F096958795B3
:1007A000F7CF932F80E0862B972B20E030E060E19D
:1007B000220F331F80FD2160615019F096958795B7
:1007C000F7CF82E0809388008DC089819A8140E0D4
:1007D00050E020E1440F551F80FD4160215019F089
:1007E00096958795F7CF8B819C8120E030E060E182
:1007F000220F331F80FD2160615019F09695879577
:10080000F7CF5093890040938A0030938B0082E0A9
:10081000809388008BE880938C00832F809544C15F
:1008200089819A8140E050E020E1440F551F80FD0E
:100830004160215019F096958795F7CF8B819C8167
:1008400020E030E060E1220F331F80FD2160615025
:1008500019F096958795F7CF5093890040938A00B9
:10086000932F92959F70822F807F892B80938B008E
:10087000C90180709F702070307F20953095432F84
:1008800042954F709C0154E0369527955A95E1F7B3
:10089000422B40938C008095909524E09695879507
:1008A0002A95E1F7807F80938D002FC189819A81FD
:1008B00040E050E020E1440F551F80FD4160215091
:1008C00019F096958795F7CF8B819C8120E030E0D9
:1008D00060E1220F331F80FD2160615019F0969571
:1008E0008795F7CF5093890040938A0030938B000F
:1008F00020938C000AC189819A8140E050E020E178
:10090000440F551F80FD4160215019F09695879541
:10091000F7CF8B819C8160E070E020E1660F771F4C
:1009200080FD6160215019F096958795F7CF50931F
:10093000890040938A00362F3F70852F82958F70F3
:10094000242F2F702827CA01807F9070A4E09695ED
:100950008795AA95E1F7282740705F702527229593
:10096000207F322B30938B00872F82958F7080935E
:100970008C00607F7F70F4E076956795FA95E1F7DB
:1009800060938D0020918B0080918C0090918D0060
:100990008227892780938E00B8C0809186008823A3
:1009A00011F430E401C030E03093860029812770D3
:1009B000220F220F220F8B819C8188739070E3E0BD
:1009C00096958795EA95E1F7282B2068232B2093AD
:1009D00089008B818295880F807E42C0809185003E
:1009E000882311F430E401C030E030938500298180
:1009F0002F70220F220F8B819C818073907074E086
:100A0000969587957A95E1F7282B2068232B2093DC
:100A100089008B818295807F23C080918400882308
:100A200011F440E401C040E0409384002B813C81FC
:100A300026FD02C090E801C090E02072307065E0B1
:100A4000369527956A95E1F789818F71880F822BFA
:100A5000942B892B809389008B81880F880F880FB6
:100A600080938A0052C08B819C8120E030E049E075
:100A7000220F331F80FD2160415019F09695879514
:100A8000F7CF8FEF8093890080EC80938A00C901B3
:100A90009695879596958795806880938B00822F91
:100AA0008295880F880F807C80938C002EC089816E
:100AB0009A8120E030E044E0220F331F80FD216066
:100AC000415019F096958795F7CF8B819C8140E036
:100AD00050E06CE0440F551F80FD4160615019F0FB
:100AE00096958795F7CFCA0180709F702295207FD9
:100AF000292B2093890040938A0007C08B8182951F
:100B0000880F880F807C8093890081E08093870024
:100B100080918700DF91CF9108958091870088238D
:100B200009F421C4509164005F3F09F00AC280912A
:100B30006300882309F405C240917500442309F439
:100B400040C0809171009091720001969093720064
:100B50008093710020917300309174008217930785
:100B600008F444C0109272001092710080918800C5
:100B7000883029F480E1809364008FE11FC0809168
:100B800088008F3021F4809364008AE117C080913F
:100B90008800803109F0D5C1242F30E02F5F3F4F0E
:100BA0008091760090E0281739072CF487E1809334
:100BB000640089E203C05093640081E18093770070
:100BC000C0C140916F004423A1F020916B0030918F
:100BD0006C0080916D0090916E002817390748F4E1
:100BE0002F5F3F4F30936C0020936B008091870004
:100BF000089580918F008093700010926C00109285
:100C00006B001092820010928100109280008091FF
:100C1000880090E0FC013197E631F10508F08FC1C2
:100C2000E75DFF4F099480E380937F008BE090E0C5
:100C300090937E0080937D0088E180937C009BE010
:100C400090937B008CE080937A00909379001092CF
:100C5000780080919000845F80937700442311F0A6
:100C600081E001C083E08093760084EF91E090936F
:100C700074008093730090936E0080936D0087ECF6
:100C80005CC184EB80937F00442349F08CE290E0C8
:100C900090937E0080937D001092770009C089E5D3
:100CA00090E090937E0080937D0080E280937700B7
:100CB0009BE090937C0081E280937B0090937A008C
:100CC0008AE08093790081E08093780080937600B9
:100CD000109274001092730080E293E029C18AE5BB
:100CE00080937F0089E590E090937E0080937D0063
:100CF0009BE090937C008CE180937B0090937A0042
:100D000088E08093790091E09093780085E277C045
:100D10008AE580937F0089E590E090937E00809340
:100D20007D009BE090937C008CE180937B0090930E
:100D30007A0088E08093790081E08093780080E2F7
:100D40008093770082E0809376008CEA93E023C062
:100D500084E480937F0081E290E090937E00809312
:100D60007D0098E090937C0088E180937B009093D5
:100D70007A0087E08093790081E08093780080E3B7
:100D800080937700442311F081E001C082E08093DA
:100D9000760088EC95E09093740080937300C8C04F
:100DA00023E020937F0084E990E090937E0080937D
:100DB0007D0020937C0084E980937B0020937A005F
:100DC00081E68093790091E0909378008BE017C0E2
:100DD00023E020937F0088E490E090937E0080934E
:100DE0007D0020937C0084E980937B0020937A002F
:100DF00081E68093790091E0909378008CE0809375
:100E0000770090937600109274001092730084E83B
:100E100093E08EC022E120937F0082E190E09093E6
:100E20007E0080937D002093620090936100809308
:100E30006000109278008DE08093770081E08093CD
:100E40007600109274001092730084E893E09093FF
:100E50006E0080936D008DED70C02BE020937F00BD
:100E600084E390E090937E0080937D002093620065
:100E70008BE090E090936100809360001092780086
:100E80008AE08093770082E08093760080E991E0A9
:100E9000909374008093730083E399E049C04423E6
:100EA00011F01092640084EB80937F0089E590E05C
:100EB00090937E0080937D0080E1809377009BE09B
:100EC00090937C0081E280937B0090937A008AE08B
:100ED0008093790081E0809378008093760010926F
:100EE00074001092730088EB91E022C08CE2809332
:100EF0007F008EE091E090937E0080937D0082E001
:100F0000809377009AE090937C0085E480937B0047
:100F100090937A008DE18093790081E0809378004E
:100F200080937600109274001092730080EB94E02E
:100F300090936E0080936D0081ED83BD02C010928E
:100F4000870080918700882309F4F8C1109263001C
:100F50008091880090E0FC013197E631F10508F0BE
:100F6000EBC1E15CFF4F099440918200442309F0FA
:100F70008DC0909164009F3F49F480917F008093E1
:100F8000620080917D0090917E007CC0809177000E
:100F9000981708F067C0809188008330D9F59031A8
:100FA00070F48BE080936200E92FE695E695E69574
:100FB000F0E0E757FF4F208130E0892F19C09031D2
:100FC00031F48BE08093620089E590E05BC095325C
:100FD00008F05CC0892F81502BE020936200E82F3D
:100FE000E695E695E695F0E0E757FF4F208130E083
:100FF000892F19C0903131F48BE0809362008AE52B
:1010000090E05BC0953208F05CC0892F81502BE0E6
:1010100020936200E82FE695E695E695F0E0E75725
:10102000FF4F208130E090E0809590958770907020
:1010300002C0359527958A95E2F720FD03C089E027
:1010400090E03BC08DE190E038C0E92FE695E69551
:10105000E695F0E0E757FF4F208130E0892F90E0E0
:10106000809590958770907002C0359527958A95E8
:10107000E2F720FF07C080917C008093620080919E
:101080007B0006C080917A00809362008091790095
:10109000809360001092610014C0809178008823D2
:1010A00081F080917A008093620090917500809128
:1010B0007600981758F38FEF90E09093610080933B
:1010C000600080916200481780F4442351F48091BD
:1010D0008300882331F485B5886185BD81E08093E4
:1010E00083004F5F4093820044C120918000309183
:1010F000810080916000909161002817390708F401
:1011000010C1809164008F5F8093640090E04091F3
:1011100078002091770030E0240F311D821793076B
:101120009CF08FEF80936400809175008F5F8093B7
:10113000750090917600891721F410928700109223
:10114000750081E08093630010928200109281000C
:10115000109280000EC190918200809162009817D9
:1011600009F058C02091800030918100809160008A
:10117000909161002817390709F04CC080916400F4
:101180008F5F80936400909177008917E8F18FEF6B
:1011900080936400809188008F3021F080918800D6
:1011A000803119F5309175003F5F309375002091C3
:1011B0006F00222331F083E399E0909374008093D1
:1011C00073008091700090917600281738F49F5F2B
:1011D000909376002F5F20936F0009C0391739F480
:1011E000109287001092750002C01092870081E073
:1011F0008093630080918300882331F085B58F7ED2
:1012000085BDC398109283001092820010928100D5
:101210001092800080916300882309F0AAC0809119
:1012200088008F3029F080918800803109F03EC01D
:10123000409164004F3F71F0809188008F3011F42D
:101240004F3041F080918800803189F4473111F0AE
:101250004F3269F480917F008093620080917D001D
:1012600090917E00909361008093600044C08BE079
:10127000809362008BE090E0909361008093600027
:10128000E42FE695E695E695F0E0E757FF4F2081DD
:1012900030E0842F90E0809590958770907002C028
:1012A000359527958A95E2F7217023C080916400D7
:1012B0008F3F11F421E014C0E82FE695E695E695FE
:1012C000F0E0E757FF4F208130E090E08095909567
:1012D0008770907002C0359527958A95E2F7217046
:1012E00080918800873029F480E0222309F481E08E
:1012F000282F222359F09091820080916200981744
:1013000030F120918000309181000BC0209180004D
:101310003091810080916000909161002817390719
:10132000A0F42115310551F480918300882331F018
:1013300085B58F7E85BDC398109283002F5F3F4F88
:10134000309381002093800014C0909182009923F3
:1013500051F480918300882331F485B5886185BD7F
:1013600081E0809383009F5F9093820002C010927F
:10137000870080918700882389F490916F00809185
:101380007000981738F49F5F90936F0081E080930E
:10139000870004C01092700010926F008091870047
:1013A000089596988E980895FC018091AF00882347
:1013B00009F47CC08091B000823051F1833009F093
:1013C00054C02091B3003091B4008091B30090914B
:1013D000B400232F332780959095907028173907F4
:1013E00009F061C08091B3009091B4009070909327
:1013F000B4008093B3002091B3003091B400809189
:10140000B5009091B600982F8827822B932B29C086
:101410002091B3003091B4008091B3009091B4005A
:10142000232F332780959095907028173907A1F0C6
:101430008091B1009091B2008E5E9748A1F58BE04B
:101440008093B0008091B3009091B400892F9927C8
:101450009093B2008093B1008091B3009091B4005A
:1014600090709093B4008093B3008091B00080831B
:101470008091B1009091B200928381838091B300FA
:101480009091B400948383838091B70085831092F8
:10149000B4001092B3001092B2001092B1001092FA
:1014A000B70081E001C080E01092AF000895F82FEE
:1014B00060919D007091A700671738F18091A80096
:1014C000681718F58091AD002F2F30E04091B800DB
:1014D0005091B900882381F0862F90E0871B9109F5
:1014E00002C0220F331F8A95E2F7422B532B5093F1
:1014F000B9004093B80069C0440F551F242B352B09
:101500003093B9002093B80060C07091A9006717AC
:1015100018F18091AA006817F8F48091AD002F2F80
:1015200030E04091BA005091BB00882381F0862FB3
:1015300090E0871B910902C0220F331F8A95E2F7C2
:10154000422B532B5093BB004093BA003EC0440F34
:10155000551F242B352B35C080919E008330D1F44C
:10156000613198F1653188F58F2F90E0262F30E0BA
:101570002151304002C0880F991F2A95E2F720912F
:10158000BC003091BD00282B392B3093BD00209337
:10159000BC001BC08530C9F46431B8F06831A8F4D0
:1015A0008F2F90E0262F30E02850304002C0880F67
:1015B000991F2A95E2F72091BA003091BB00282BA1
:1015C000392B3093BB002093BA0080919E00853068
:1015D00051F5603340F5262F30E0E62FE695E6958D
:1015E000E695FF2381F0F0E0E254FF4F2770307062
:1015F00081E090E002C0880F991F2A95E2F72081D0
:10160000282B208310C0F0E0E254FF4F2770307089
:1016100081E090E002C0880F991F2A95E2F780953B
:101620002081822380836F5F60939D00089590B333
:101630008091AF00882309F046C4907480919C008B
:101640008823A1F540919900992321F44F5F40939D
:10165000990039C44423D9F081E080939C008093A1
:101660009A0010929B001092BB001092BA00109248
:10167000B9001092B8008FEF80939D0081E090E058
:101680009093980080939700109293001CC48091CF
:101690009500909196002FEF8F3F920709F413C4A5
:1016A000019690939600809395000DC480919A00C6
:1016B000882309F42CC1409199009923B9F08091B5
:1016C00097009091980001969093980080939700CE
:1016D0004252453120F051E08B34950720F48F546D
:1016E000924008F4C9C28091B000E6C1842F8A52AA
:1016F0008D3060F480919700909198008930910529
:1017000028F00F9718F46AEA70E0C5C08091B00025
:10171000843171F44B3660F04E3F50F48091970065
:10172000909198008134910518F08B3B910570F0F1
:10173000842F8B568339B0F4809197009091980054
:101740008533910530F08038910530F46BEB70E013
:10175000A2C08A31910530F08134910518F46CEC07
:1017600070E099C0842F8252853170F48091970087
:101770009091980051E0813B950730F08C58924051
:1017800018F46DED70E087C0842F8055853168F4C2
:1017900080919700909198008035910530F08536C2
:1017A000910518F46EEE70E076C0842F8C53803172
:1017B00060F480919700909198008D31910528F008
:1017C000879718F46FEF70E066C0542F5250533073
:1017D00068F480919700909198008538910530F0D9
:1017E000863A910518F460E171E055C0842F8F505E
:1017F000873018F08F508D3020F520919700309170
:101800009800C9010F97079720F0C9014E970D97CF
:10181000C0F430939200209391004651453128F056
:10182000265130402531310530F41092900080E48B
:101830008093930003C081E08093900061E271E0A7
:101840002AC0533068F480919700909198008434B6
:10185000910530F08E34910518F462E371E01BC0FD
:1018600047504830A0F480919700909198008B32B7
:10187000910568F08134910550F490939200809323
:10188000910081E08093900063E471E004C01092C5
:101890009C0060E070E080919C00882329F08EE934
:1018A00090E041E150E012D310929D008091AE0093
:1018B000282F30E080FF21C080919E008930E9F020
:1018C00040919700509198008091A00090E084177B
:1018D000950750F4880F991F8417950728F03695BF
:1018E0002795822F809507C080919000882329F446
:1018F00036952795822F8170DADD81E080939900FB
:10190000109298001092970010929A00B5C18091A1
:101910009B00882309F49FC1992309F4D6C06091E4
:101920009D00E091AB006E1799F48091AC0081307E
:1019300079F4909199008091A300981708F4BCC0A5
:101940008091A400891708F4B7C01092AC0094C12C
:1019500040919700509198004F5F5F4F50939800CF
:101960004093970070919E007130C1F44F30510543
:1019700008F44DC06B3008F44AC06F5F6093AB0051
:1019800061508091A900680F6F5F6093AA008DE09D
:1019900090E0909398008093970097C07F30B9F5BE
:1019A0008091AC00882399F58091A20090E0880F87
:1019B000991F8417950730F4683020F08AE08093EF
:1019C000AB003DC06A3008F457C180E180939E00AF
:1019D00099E09093A70081E18093A80081E0809333
:1019E000A9009093AA002091BA003091BB00C901D0
:1019F00080709370892B09F43FC13093B800109226
:101A0000B90030703093BB002093BA0035C180918B
:101A1000AE0080FF18C08091A20090E0880F991F4F
:101A20008417950780F4262F30E08E2F90E00297E0
:101A30002817390744F08091AC00882321F481E015
:101A40008093AC0042C04B54514008F415C1262F7E
:101A500030E08E2F90E001972817390741F48091EC
:101A6000AC00882321F46F5F60939D0005C1723044
:101A700019F5862F80518230F8F441E04093AC0094
:101A800084E180939E006093AB008091B8009091B8
:101A9000B9009C0154E0369527955A95E1F73093AB
:101AA000BB002093BA008F7090709093B900809320
:101AB000B80040939C00E0C010929C0010929900E6
:101AC0001092980010929700D7C08091AE00282FF6
:101AD00030E080FF4CC0909199008091A000891760
:101AE000B0F436952795822F80958170E0DC809147
:101AF000AE0090E0969587958170D9DC8091AE001C
:101B000090E09695879581708093900027C0809192
:101B10009F009817E8F020919100309192008091F9
:101B2000A20090E08217930770F4880F991F821724
:101B3000930748F090E080919000882309F491E0A9
:101B40009093900002C090919000892FB0DC06C065
:101B500010929C001092980010929700809197002C
:101B60009091980090939200809391004FC0809143
:101B70009E00833079F580919D00803159F58091E8
:101B800099008750893008F05EC02091970030910D
:101B900098002035310568F02536310550F4109253
:101BA0009B001092BD001092BC0081E180939D00CB
:101BB00050C08AE080939E0080E18093A90080E27B
:101BC0008093AA008093AB0023513040253131052A
:101BD000C0F51AC04091990080919F004817C8F045
:101BE0008091A0008417A8F0209197003091980070
:101BF0008091A10090E02817390758F08091A20049
:101C000090E08217930728F081E051DC10929B004E
:101C100020C08091A3004817B0F08091A4008417E1
:101C200090F020919700309198008091A50090E06D
:101C30002817390740F08091A60090E0821793079B
:101C400010F080E0E2CF10929C0010929800109269
:101C5000970081E005C0992331F4809199008F5F4E
:101C60008093990009C081E080939B0081E090E01F
:101C7000909398008093970080919C00882309F4AA
:101C800022C140919D008091AB00481709F01BC113
:101C90008091AC00882309F016C1609165007091B5
:101CA00066002091BA003091BB006217730769F497
:101CB00080919500909196008054964030F48091E8
:101CC00094008F5F8093940002C010929400509112
:101CD0009E00513031F4809194008150823098F40C
:101CE0000DC0553029F480919400813061F406C014
:101CF0005A3049F48091940080FF05C010929600FC
:101D00001092950093C081E08093AF005F3029F47A
:101D10002F5F314009F05DC00EC0503179F48091E1
:101D2000B8009091B9008F3F910509F052C02E3F45
:101D3000310509F04EC01092AF0078C0523001F565
:101D4000442309F046C080919500909196008056FA
:101D50009940E8F580916700909168009093B900F0
:101D60008093B8007093BB006093BA008091B70075
:101D700081608093B700109296001092950029C060
:101D8000553039F58091BE009091BF004091C00060
:101D9000282F2F7082958F702827892F8F702827E2
:101DA00092959F70292730E0842F90E08F7090707B
:101DB0002817390711F01092AF008091C100482711
:101DC0008091C20048278091C300481711F01092FB
:101DD000AF005093B0008091B8009091B9009093FB
:101DE000B2008093B10090936800809367005730F1
:101DF00069F42091930030E08091BA009091BB008B
:101E0000822B932B9093BB008093BA008091BA00F1
:101E10009091BB009093B4008093B3008091BC007C
:101E20009091BD009093B6008093B5008091AF0073
:101E30008823B1F12091B3003091B4008091650006
:101E40009091660082179307B9F42091B100309108
:101E5000B20080916700909168008217930761F447
:101E60008091950090919600885B9B4028F480912A
:101E7000B70081608093B7008091B8009091B9005D
:101E800090936800809367008091BA009091BB00A6
:101E900090936600809365001092960010929500D2
:101EA00010929C001092BB001092BA001092990000
:101EB00010929800109297008091B000843119F42C
:101EC00083EB809399008091AF000895FB01DC01C2
:101ED00002C005900D9241505040D8F70895A0E0FF
:101EE000B0E0E4E7FFE039C07C01EB018A01690161
:101EF00009C0CE012196F6010995F70181937F0172
:100FF00090E0809590958770907002C03595279508
:101000008A95E2F720FD03C088E090E03BC08CE1C8
:1010100090E038C0E92FE695E695E695F0E0E757D1
:10102000FF4F208130E0892F90E080959095877068
:10103000907002C0359527958A95E2F720FF07C08A
:1010400080917C008093620080917B0006C080913B
:101050007A00809362008091790080936000109202
:10106000610014C080917800882381F080917A001B
:10107000809362009091750080917600981758F3E4
:101080008FEF90E090936100809360008091620008
:10109000481780F4442351F480918300882331F46D
:1010A00085B5886185BD81E0809383004F5F409363
:1010B000820044C1209180003091810080916000C5
:1010C000909161002817390708F410C180916400DD
:1010D0008F5F8093640090E04091780020917700CA
:1010E00030E0240F311D821793079CF08FEF80931F
:1010F0006400809175008F5F8093750090917600F9
:10110000891721F4109287001092750081E0809376
:1011100063001092820010928100109280000EC134
:101120009091820080916200981709F058C0209138
:1011300080003091810080916000909161002817BB
:10114000390709F04CC0809164008F5F8093640080
:10115000909177008917E8F18FEF80936400809178
:1011600088008F3021F080918800803119F530910E
:1011700075003F5F3093750020916F00222331F09E
:1011800083E399E0909374008093730080917000E2
:1011900090917600281738F49F5F909376002F5F28
:1011A00020936F0009C0391739F41092870010920C
:1011B000750002C01092870081E0809363008091E7
:1011C0008300882331F085B58F7E85BDC39810924A
:1011D0008300109282001092810010928000809112
:1011E0006300882309F0AAC0809188008F3029F01D
:1011F00080918800803109F03EC0409164004F3FEB
:1012000071F0809188008F3011F44F3041F080915F
:101210008800803189F4473111F04F3269F48091B0
:101220007F008093620080917D0090917E0090937A
:1012300061008093600044C08BE0809362008BE08B
:1012400090E09093610080936000E42FE695E6952E
:10125000E695F0E0E757FF4F208130E0842F90E0E3
:10126000809590958770907002C0359527958A95E6
:10127000E2F7217023C0809164008F3F11F421E0D8
:1012800014C0E82FE695E695E695F0E0E757FF4FA6
:10129000208130E090E0809590958770907002C03A
:1012A000359527958A95E2F72170809188008730DF
:1012B00029F480E0222309F481E0282F222359F029
:1012C0009091820080916200981730F12091800007
:1012D000309181000BC0209180003091810080917D
:1012E00060009091610028173907A0F4211531059D
:1012F00051F480918300882331F085B58F7E85BDC0
:10130000C398109283002F5F3F4F3093810020934A
:10131000800014C090918200992351F48091830041
:10132000882331F485B5886185BD81E08093830091
:101330009F5F9093820002C0109287008091870087
:10134000882389F490916F0080917000981738F489
:101350009F5F90936F0081E08093870004C010929C
:10136000700010926F0080918700089596988E9873
:101370000895FC018091B000882309F47CC080911D
:10138000B100823051F1833009F054C02091B40093
:101390003091B5008091B4009091B500232F332790
:1013A0008095909590702817390709F061C0809159
:1013B000B4009091B50090709093B5008093B40004
:1013C0002091B4003091B5008091B6009091B700A3
:1013D000982F8827822B932B29C02091B40030911D
:1013E000B5008091B4009091B500232F33278095EC
:1013F0009095907028173907A1F08091B2009091D4
:10140000B3008E5E9748A1F58BE08093B100809188
:10141000B4009091B500892F99279093B3008093E1
:10142000B2008091B4009091B50090709093B50097
:101430008093B4008091B10080838091B20090913C
:10144000B300928381838091B4009091B50094831E
:1014500083838091B80085831092B5001092B40008
:101460001092B3001092B2001092B80081E001C057
:1014700080E01092B0000895F82F60919E00709166
:10148000A800671738F18091A900681718F58091B6
:10149000AE002F2F30E04091B9005091BA00882360
:1014A00081F0862F90E0871B910902C0220F331F25
:1014B0008A95E2F7422B532B5093BA004093B90020
:1014C00069C0440F551F242B352B3093BA0020934D
:1014D000B90060C07091AA00671718F18091AB0045
:1014E0006817F8F48091AE002F2F30E04091BB00D8
:1014F0005091BC00882381F0862F90E0871B9109D2
:1015000002C0220F331F8A95E2F7422B532B5093D0
:10151000BC004093BB003EC0440F551F242B352B0D
:1015200035C080919F008330D1F4613198F16531ED
:1015300088F58F2F90E0262F30E02151304002C0F7
:10154000880F991F2A95E2F72091BD003091BE00C7
:10155000282B392B3093BE002093BD001BC0853053
:10156000C9F46431B8F06831A8F48F2F90E0262FC9
:1015700030E02850304002C0880F991F2A95E2F7CA
:101580002091BB003091BC00282B392B3093BC003C
:101590002093BB0080919F00853051F5603340F56A
:1015A000262F30E0E62FE695E695E695FF2381F0BD
:1015B000F0E0E154FF4F2770307081E090E002C00E
:1015C000880F991F2A95E2F72081282B208310C0CD
:1015D000F0E0E154FF4F2770307081E090E002C0EE
:1015E000880F991F2A95E2F78095208182238083B6
:1015F0006F5F60939E00089590B38091B000882340
:1016000009F047C4907480919D008823A1F5409112
:101610009A00992321F44F5F40939A003AC44423DF
:10162000D9F081E080939D0080939B0010929C00F4
:101630001092BC001092BB001092BA001092B90038
:101640008FEF80939E0081E090E0909399008093CB
:101650009800109294001DC480919600909197007C
:101660002FEF8F3F920709F414C4019690939700CF
:10167000809396000EC480919B00882309F42CC1AE
:1016800040919A009923B9F0809198009091990027
:10169000019690939900809398004252453120F032
:1016A00051E08B34950720F48F54924008F4D9C24E
:1016B0008091B100F6C1842F8A528D3060F4809100
:1016C0009800909199008930910528F00F9718F4AF
:1016D0006AEA70E0C5C08091B100843171F44B3684
:1016E00060F04E3F50F480919800909199008134C1
:1016F000910518F08B3B910570F0842F8B56833940
:10170000B0F480919800909199008533910530F064
:101710008038910530F46BEB70E0A2C08A319105FE
:1017200030F08134910518F46CEC70E099C0842F8E
:101730008252853170F4809198009091990051E027
:10174000813B950730F08C58924018F46DED70E0B5
:1017500087C0842F8055853168F4809198009091DE
:1017600099008035910530F08536910518F46EEEBC
:1017700070E076C0842F8C53803160F480919800A3
:10178000909199008D31910528F0879718F46FEFAB
:1017900070E066C0542F5250533068F48091980026
:1017A000909199008538910530F0863A910518F4AA
:1017B00060E171E055C0842F8F50873018F08F5052
:1017C0008D3020F52091980030919900C9010F9734
:1017D000079720F0C9014E970D97C0F430939300FE
:1017E000209392004651453128F026513040253152
:1017F000310530F41092910080E48093940003C08E
:1018000081E08093910061E271E02AC0533068F476
:1018100080919800909199008434910530F08E3435
:10182000910518F462E371E01BC047504830A0F402
:1018300080919800909199008B32910568F08134E5
:10184000910550F4909393008093920081E08093EF
:10185000910063E471E004C010929D0060E070E0CC
:1018600080919D00882329F08FE990E041E150E0CC
:1018700013D310929E008091AF00282F30E080FF9C
:1018800021C080919F008930E9F0409198005091EB
:1018900099008091A10090E08417950750F4880F7B
:1018A000991F8417950728F036952795822F8095E4
:1018B00007C080919100882329F436952795822FBF
:1018C0008170DADD81E080939A0010929900109285
:1018D000980010929B00C5C180919C00882309F458
:1018E000AFC1992309F4E6C060919E00E091AC007D
:1018F0006E1799F48091AD00813079F490919A003F
:101900008091A400981708F4CCC08091A500891795
:1019100008F4C7C01092AD00A4C140919800509146
:1019200099004F5F5F4F50939900409398007091DA
:101930009F00713041F54F30510508F45DC06B30A8
:1019400008F45AC06F5F6093AC006150262F30E0FE
:101950002B503040322F22278091B9009091BA004D
:10196000822B932B9093BA008093B9008091AA00A8
:10197000680F6F5F6093AB008DE090E090939900EB
:101980008093980097C07F30B9F58091AD0088238F
:1019900099F58091A30090E0880F991F841795070F
:1019A00030F4683020F08AE08093AC003DC06A30AB
:1019B00008F457C180E180939F0099E09093A800BC
:1019C00081E18093A90081E08093AA009093AB000D
:1019D0002091BB003091BC00C90180709370892BAD
:1019E00009F43FC13093B9001092BA0030703093BF
:1019F000BC002093BB0035C18091AF0080FF18C0B0
:101A00008091A30090E0880F991F8417950780F4B8
:101A1000262F30E08E2F90E002972817390744F0E8
:101A20008091AD00882321F481E08093AD0042C015
:101A30004B54514008F415C1262F30E08E2F90E012
:101A400001972817390741F48091AD00882321F4CC
:101A50006F5F60939E0005C1723019F5862F80512B
:101A60008230F8F441E04093AD0084E180939F0020
:101A70006093AC008091B9009091BA009C0154E051
:101A8000369527955A95E1F73093BC002093BB001B
:101A90008F7090709093BA008093B90040939D002E
:101AA000E0C010929D0010929A001092990010923E
:101AB0009800D7C08091AF00282F30E080FF4CC045
:101AC00090919A008091A1008917B0F436952795DE
:101AD000822F80958170D0DC8091AF0090E0969548
:101AE00087958170C9DC8091AF0090E096958795CD
:101AF00081708093910027C08091A0009817E8F032
:101B000020919200309193008091A30090E0821781
:101B1000930770F4880F991F8217930748F090E09D
:101B200080919100882309F491E09093910002C084
:101B300090919100892FA0DC06C010929D00109218
:101B4000990010929800809198009091990090933C
:101B50009300809392004FC080919F00833079F56D
:101B600080919E00803159F580919A00875089308C
:101B700008F05EC020919800309199002035310521
:101B800068F02536310550F410929C001092BE008A
:101B90001092BD0081E180939E0050C08AE0809346
:101BA0009F0080E18093AA0080E28093AB00809345
:101BB000AC002351304025313105C0F51AC04091A9
:101BC0009A008091A0004817C8F08091A100841766
:101BD000A8F020919800309199008091A20090E0A7
:101BE0002817390758F08091A30090E082179307D7
:101BF00028F081E041DC10929C0020C08091A4007C
:101C00004817B0F08091A500841790F020919800BB
:101C1000309199008091A60090E02817390740F094
:101C20008091A70090E08217930710F080E0E2CF48
:101C300010929D00109299001092980081E005C0CA
:101C4000992331F480919A008F5F80939A0009C0A4
:101C500081E080939C0081E090E0909399008093D4
:101C6000980080919D00882309F413C140919E0043
:101C70008091AC00481709F00CC18091AD00882319
:101C800009F007C160916500709166002091BB006A
:101C90003091BC006217730769F4809196009091AF
:101CA00097008054964030F4809195008F5F809328
:101CB000950002C01092950050919F00513031F470
:101CC000809195008150823098F40DC0553029F4F0
:101CD00080919500813061F406C05A3049F48091BA
:101CE000950080FF05C0109297001092960084C066
:101CF00081E08093B0005F3039F42F5F314009F00C
:101D00004EC01092B00078C0523001F5442309F063
:101D100046C0809196009091970080569940E8F5D2
:101D200080916700909168009093BA008093B90009
:101D30007093BC006093BB008091B8008160809379
:101D4000B800109297001092960029C0553039F5CE
:101D50008091BF009091C0004091C100282F2F704A
:101D600082958F702827892F8F70282792959F70D2
:101D7000292730E0842F90E08F7090702817390762
:101D800011F01092B0008091C20048278091C300EA
:101D900048278091C400481711F01092B00050936A
:101DA000B1008091B9009091BA009093B3008093F4
:101DB000B2009093680080936700573069F42091D7
:101DC000940030E08091BB009091BC00822B932B5B
:101DD0009093BC008093BB008091BB009091BC00AD
:101DE0009093B5008093B4008091BD009091BE00A7
:101DF0009093B7008093B6008091B0008823B1F132
:101E00002091B4003091B5008091650090916600FA
:101E100082179307B9F42091B2003091B3008091FA
:101E20006700909168008217930761F48091960093
:101E300090919700885B9B4028F48091B800816066
:101E40008093B8008091B9009091BA009093680097
:101E5000809367008091BB009091BC0090936600D6
:101E600080936500109297001092960010929D004A
:101E70001092BC001092BB0010929A001092990030
:101E8000109298008091B100843119F483EB809313
:101E90009A008091B0000895FB01DC0102C005901A
:101EA0000D9241505040D8F70895A0E0B0E0EAE527
:101EB000FFE039C07C01EB018A01690109C0CE0154
:101EC0002196F6010995F70181937F010150104099
:101ED00001151105A1F7CDB7DEB7E8E040C0A0E0DD
:101EE000B0E0E4E7FFE01FC0EC017B018A0169017B
:101EF00009C0CE012196F70161917F01F601099594
:101F00000150104001151105A1F7CDB7DEB7E8E08B
:101F100040C0A0E0B0E0EEE8FFE01FC0EC017B01B4
:101F20008A01690109C0CE012196F70161917F0103
:101F3000F60109950150104001151105A1F7CDB723
:101F4000DEB7E8E026C02F923F924F925F926F92E9
:101F50007F928F929F92AF92BF92CF92DF92EF9239
:101F6000FF920F931F93CF93DF93CDB7DEB7CA1BBA
:101F7000DB0B0FB6F894DEBF0FBECDBF09942A88E5
:101F8000398848885F846E847D848C849B84AA848D
:101F9000B984C884DF80EE80FD800C811B81AA811A
:101FA000B981CE0FD11D0FB6F894DEBF0FBECDBFE5
:081FB000ED010895F894FFCF44
:0A1FB800FF00FF01FFFFFFFFFF0025
:101F100026C02F923F924F925F926F927F928F9244
:101F20009F92AF92BF92CF92DF92EF92FF920F9368
:101F30001F93CF93DF93CDB7DEB7CA1BDB0B0FB672
:101F4000F894DEBF0FBECDBF09942A88398848882F
:101F50005F846E847D848C849B84AA84B984C884C5
:101F6000DF80EE80FD800C811B81AA81B981CE0FBC
:101F7000D11D0FB6F894DEBF0FBECDBFED010895A1
:041F8000F894FFCF03
:0A1F8400FF00FF01FFFFFFFFFF0059
:00000001FF
/Servo-Controlled IR-Transmitter/Software/irmp.c
3,7 → 3,7
*
* Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de
*
* $Id: irmp.c,v 1.84 2010/11/09 19:18:32 fm Exp $
* $Id: irmp.c,v 1.87 2011/01/18 13:02:15 fm Exp $
*
* ATMEGA88 @ 8 MHz
*
17,7 → 17,7
* KASEIKYO - Panasonic, Denon & other Japanese manufacturers (members of "Japan's Association for Electric Home Application")
* RECS80 - Philips, Nokia, Thomson, Nordmende, Telefunken, Saba
* RC5 - Philips and other European manufacturers
* DENON - Denon
* DENON - Denon, Sharp
* RC6 - Philips and other European manufacturers
* APPLE - Apple
* NUBERT - Nubert Subwoofer System
153,10 → 153,18
* frame: 0 start bits + 16 data bits + stop bit + 65ms pause + 16 inverted data bits + stop bit
* data: 5 address bits + 10 command bits
*
* Theory:
*
* data "0": data "1":
* ------________________ ------______________
* 275us 775us 275us 1900us
*
* Practice:
*
* data "0": data "1":
* ------________________ ------______________
* 310us 745us 310us 1780us
*
*---------------------------------------------------------------------------------------------------------------------------------------------------
*
* RC6
2035,17 → 2043,18
}
else
{
irmp_pause_time++; // increment counter
irmp_pause_time++; // increment counter
 
#if IRMP_SUPPORT_SIRCS_PROTOCOL == 1
if (irmp_param.protocol == IRMP_SIRCS_PROTOCOL && // Sony has a variable number of bits:
irmp_pause_time > SIRCS_PAUSE_LEN_MAX && // minimum is 12
irmp_bit >= 12 - 1) // pause too long?
{ // yes, break and close this frame
irmp_param.complete_len = irmp_bit + 1; // set new complete length
got_light = TRUE; // this is a lie, but helps (generates stop bit)
irmp_param.command_end = irmp_param.command_offset + irmp_bit + 1; // correct command length
irmp_pause_time = SIRCS_PAUSE_LEN_MAX - 1; // correct pause length
if (irmp_param.protocol == IRMP_SIRCS_PROTOCOL && // Sony has a variable number of bits:
irmp_pause_time > SIRCS_PAUSE_LEN_MAX && // minimum is 12
irmp_bit >= 12 - 1) // pause too long?
{ // yes, break and close this frame
irmp_param.complete_len = irmp_bit + 1; // set new complete length
got_light = TRUE; // this is a lie, but helps (generates stop bit)
irmp_tmp_address |= (irmp_bit - SIRCS_MINIMUM_DATA_LEN + 1) << 8; // new: store number of additional bits in upper byte of address!
irmp_param.command_end = irmp_param.command_offset + irmp_bit + 1; // correct command length
irmp_pause_time = SIRCS_PAUSE_LEN_MAX - 1; // correct pause length
}
else
#endif
2214,7 → 2223,7
irmp_param.address_end = irmp_param.address_offset + 15;
irmp_param.command_offset = irmp_param.address_end + 1; // skip 1 system bit, changes like a toggle bit
irmp_param.command_end = irmp_param.command_offset + 16 - 1;
irmp_tmp_address = 1; // addr 0 - 32767 --> 32768 - 65535
irmp_tmp_address = 0;
}
#endif // IRMP_SUPPORT_RC6_PROTOCOL == 1
 
2859,7 → 2868,7
}
}
 
for (i = 0; i < 100; i++)
for (i = 1; i < 100; i++)
{
if (buf[i] > 0)
{
/Servo-Controlled IR-Transmitter/Software/servo-IR.aps
1,0 → 0,0
<AVRStudio><MANAGEMENT><ProjectName>irsnd</ProjectName><Created>07-Jan-2010 20:23:49</Created><LastEdit>20-Dec-2010 11:23:34</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>07-Jan-2010 20:23:49</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\servo-IR.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>D:\Pendsa\IR\Software\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega88.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>irsnd.c</SOURCEFILE><SOURCEFILE>irmp.c</SOURCEFILE><HEADERFILE>irmp.h</HEADERFILE><HEADERFILE>irsnd.h</HEADERFILE><HEADERFILE>irsndconfig.h</HEADERFILE><HEADERFILE>irmpconfig.h</HEADERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega8</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>servo-IR.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Programme\WinAVR-20081205\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Programme\WinAVR-20081205\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>D:\Pendsa\IR\Software\irmp.h</Name><Name>D:\Pendsa\IR\Software\irsnd.h</Name><Name>D:\Pendsa\IR\Software\irsndconfig.h</Name><Name>D:\Pendsa\IR\Software\irmpconfig.h</Name><Name>D:\Pendsa\IR\Software\main.c</Name><Name>D:\Pendsa\IR\Software\irsnd.c</Name><Name>D:\Pendsa\IR\Software\irmp.c</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>irmp.h</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>irsnd.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>irsnd.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>irsndconfig.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>irmpconfig.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>c:\programme\winavr-20081205\avr\include\avr\iom88.h</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>c:\programme\winavr-20081205\avr\include\avr\common.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>irmp.c</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>main.c</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>c:\programme\winavr-20081205\avr\include\util\delay.h</FileName><Status>1</Status></File00009></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
<AVRStudio><MANAGEMENT><ProjectName>irsnd</ProjectName><Created>07-Jan-2010 20:23:49</Created><LastEdit>03-Feb-2011 16:20:54</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>07-Jan-2010 20:23:49</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\servo-IR.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega88.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>irsnd.c</SOURCEFILE><SOURCEFILE>irmp.c</SOURCEFILE><HEADERFILE>irmp.h</HEADERFILE><HEADERFILE>irsnd.h</HEADERFILE><HEADERFILE>irsndconfig.h</HEADERFILE><HEADERFILE>irmpconfig.h</HEADERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega8</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>servo-IR.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Programme\WinAVR-20081205\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Programme\WinAVR-20081205\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irmp.h</Name><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irsnd.h</Name><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irsndconfig.h</Name><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irmpconfig.h</Name><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\main.c</Name><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irsnd.c</Name><Name>D:\Pendsa\Kopter\Servo-Controlled IR-Transmitter\Software\irmp.c</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>irmp.h</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>irsnd.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>irsnd.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>irsndconfig.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>irmpconfig.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>c:\programme\winavr-20081205\avr\include\avr\iom88.h</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>c:\programme\winavr-20081205\avr\include\avr\common.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>irmp.c</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>main.c</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>c:\programme\winavr-20081205\avr\include\util\delay.h</FileName><Status>1</Status></File00009></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
/Servo-Controlled IR-Transmitter/Doku.txt
68,7 → 68,6
KASEIKYO: Panasonic, Technics, Denon und mehr Japanische Hersteller, die Mitglied im "Japan's Association for Electric Home Application" sind
NEC: NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, NoName and mehr Japanische Hersteller
NIKON: Nikon
NOKIA: Nokia, z.B. D-Box
RC5: Philips und mehr Europäische Hersteller
RECS80: Philips, Nokia, Thomson, Nordmende, Telefunken, Saba, Technisat
SAMSUNG: Samsung
/Servo-Controlled IR-Transmitter/Docu.txt
68,7 → 68,6
KASEIKYO Panasonic, Technics, Denon and more japanese manufacturer, which are member in "Japan's Association for Electric Home Application"
NEC NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, NoName and much more japanese manufacturer
NIKON Nikon
NOKIA Nokia, e.g. D-Box
RC5 Philips and more european manufacturer
RECS80 Philips, Nokia, Thomson, Nordmende, Telefunken, Saba, Technisat
SAMSUNG Samsung