rain_cbc пишет:for( char i = 0; i < 30; i++ )
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}
PORTD &= ~0x01;
Так не получится.
Раз Вы решили поступить таким образом, то тогда лучше вот так:
CODE:
for( char i = 0; i < 30; i++ )
{
PORTD &= ~0x01;
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
_delay_us(14);
}
Мне кажется, Вам придется поиграть задержкой для того, чтобы поточнее подстроить частоту.
И следует обратить внимание, что после генерации очередной пачки МК должен успеть "метнуться" к TSOP, а на том все еще должен быть "0".
И я не уверен по поводу _delay_us(14); |