#include #include #include #define F_CPU 1600000UL #define RF_PORT PORTB #define RF_DDR DDRB #define RF_PIN PINB #define CS 4 #define SDI 5 #define SDO 6 #define SCK 7 #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) unsigned short rf12_trans(unsigned short wert) { unsigned short werti=0; unsigned char i; cbi(RF_PORT, CS); for (i=0; i<16; i++) { if (wert&32768) sbi(RF_PORT, SDI); else cbi(RF_PORT, SDI); werti<<=1; if (RF_PIN&(1<3903) // 439,7575MHz freq=3903; rf12_trans(0xA000|freq); } void rf12_setbaud(unsigned short baud) { if (baud<663) return; if (baud<5400) // Baudrate= 344827,58621/(R+1)/(1+CS*7) rf12_trans(0xC680|((43104/baud)-1)); else rf12_trans(0xC600|((344828UL/baud)-1)); } void rf12_setpower(unsigned char power, unsigned char mod) { rf12_trans(0x9800|(power&7)|((mod&15)<<4)); } void rf12_ready(void) { cbi(RF_PORT, CS); while (!(RF_PIN&(1<