#include #include #include "global.h" #include "rf12.h" #define F_CPU 8000000UL #include #define RF_PORT PORTB #define RF_DDR DDRB #define RF_PIN PINB #define SDI 3 #define SCK 5 #define CS 2 #define SDO 4 unsigned short rf12_trans(unsigned short wert) { 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); wert<<=1; if (RF_PIN&(1<3903) // 439,7575MHz freq=3903; rf12_trans(0xA000|freq); } void rf12_setbaud(unsigned short baud) { if (baud<664) baud=664; if (baud<5400) // Baudrate= 344827,58621/(R+1)/(1+CS*7) rf12_trans(0xC680|((43104/baud)-1)); // R=(344828/8)/Baud-1 else rf12_trans(0xC600|((344828UL/baud)-1)); // R=344828/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, SDI); cbi(RF_PORT, CS); asm("nop"); while (!(RF_PIN&(1<