Код передатчика для RF433 MHz выполняеться один раз Attiny13A
- Войдите на сайт для отправки комментариев
Ср, 05/12/2018 - 02:26
Изучив несколько примеров, нашел и переписал код для передачи данных через радиопередатчик на Attiny13A. Данные передаются и принимаются на другой стороне. Но в методе send() цикл повторений передачи даных равен 10, а я получаю данные только 1 раз.
Если же в функции main() метод send() упаковать в цикл с любым количеством итераций, данные я получаю все равно только 1 раз.
Подскажите что не так?
#define F_CPU 1200000LU #include <avr/io.h> #include <util/delay.h> #define nPulseLength 350 #define PIN_TX (1<<PB3) // PB3 pin, goes to transmitter data pin void send(unsigned long code, unsigned int length) { for (int nRepeat = 0; nRepeat < 10; nRepeat++) { for (int i = length-1; i >= 0; i--) { if (code & (1L << i)) { PORTB |= PIN_TX; _delay_us(nPulseLength * 3); PORTB &= ~PIN_TX; // same as digitalWrite high _delay_us(nPulseLength); } else { PORTB |= PIN_TX; _delay_us(nPulseLength); PORTB &= ~PIN_TX; // same as digitalWrite low _delay_us(nPulseLength * 3); } } PORTB |= PIN_TX; _delay_us(nPulseLength); PORTB &= ~PIN_TX; _delay_us(nPulseLength * 31); } } int main(void) { DDRB |= PIN_TX; // Set output direction on PIN_TX while (1) { send(53, 8); _delay_ms(2000); } }