Quelltext /~heha/mb-iwp/FlyStick/Firmware.zip/Funk-Joystick/rf12if.h

/********************************************************
 * RFM12-Kommunikation, hardwareabhängige Routinen	*
 * ATtiny44-Version für fs-c (Flystick Variante C: Funk)*
 * Wird von rf12.c eingebunden, von sonst nichts	*
 ********************************************************/

// Empfangsdaten (für rf_poll) vorhanden?
#define rf12_data() (PINA&0x20)

// Daten-WORD „austauschen“
// Aufgrund eines Schaltungsfehlers (DI und DO vertauscht)
// kann USI nicht verwendet werden.
WORD rf12_xfer(WORD data) {
 PORTA&=~0x80;		// !SEL aktivieren
 BYTE i=16;
 do{
  if (data&0x8000) PORTA|=0x40; else PORTA&=~0x40;
  PORTA|=0x10;	// normalerweise sollte 1 µs reichen
  data<<=1;
  if (rf12_data()) data|=1;
  PORTA&=~0x10;
 }while(--i);
 PORTA|=0x80;		// !SEL deaktivieren
 PORTA&=~0x80;		// !SEL aktivieren: RGIT oder FFIT "guckt raus"
 return data;
}
Vorgefundene Kodierung: UTF-80