Цитата:
Сообщение от ali_vlad
PHP код:
void IRsend::sendNEC(unsigned long data, int nbits)
{
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
digitalWrite(3, LOW);
for (int i = 0; i < nbits; i++) {
if (data & TOPBIT) {
digitalWrite(3, HIGH);
digitalWrite(3, LOW);
}
else {
digitalWrite(3, HIGH);
digitalWrite(3, LOW);
}
data <<= 1;
}
digitalWrite(3, HIGH);
space(0);
Если так, то всё равно не работает.
|
Не совсем так.
В функциях MARK и SPACE кроме включения и выключения ШИМ дополнительно формируются задержки, длительность которых задается при вызове функции (NET_BIT_MARK, NET_ONE_MARK, NEC_ZERO_SPACE), поэтому digitalWrite предлагаю вставлять в место строчек TCCR2A|=_BV(COM21); в функции marc, TCCR2A&=~(_BV(COM21)); в функции space. инициализацию порта (pinMode) оставить в sendNEC