Hallo,

Steck immoment bei dem Funkmodul RFM12 fest, da ich dieses gerne mit 868Mhz betreiben möchte! Empfängerseite ist das Funkmodul hier von dieser Seite:http://www.ulrichradig.de/home/index.php/avr/usb-funk
mit folgendem Code:

Code:
#include <avr/interrupt.h>

#include <avr/io.h>
#include "usart.h"

#include "rf12.h"

//------------------------------------------------------------------------------



int main (void) 

{

	unsigned char test[100]="test hallo\n";

	usart_init(9600); // Serielle Schnittstelle initialisieren

	DDRD |= (1<<6);



	PORTD |= (1<<6);

	

	usart_write("USB TEST\r\n"); 



	rf12_init();					// ein paar Register setzen (z.B. CLK auf 10MHz)

	rf12_setfreq(RF12FREQ(868,3));	// Sende/Empfangsfrequenz auf 433,92MHz einstellen

	rf12_setbandwidth(5, 1, 4);		// 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 

	rf12_setbaud(9600);				// 19200 baud

	rf12_setpower(0, 6);			// 1mW Ausgangangsleistung, 120k

	

  while(1)

  { 

	

	while(!(rf12_rxdata(test)));

	

	usart_write("%s",(char*)test);

	usart_write("\r\n");

	

  }

}
und auf der Senderseite habe ich einen Atmel Mega 8 mit Grundbeschaltung (ein 10k Widerstand von Reset nach VCC und nen 100nF Kondensator zwischen VCC und GND ) und internem 8Mhz Quarz. Hier wurde folgender Code verwendet:

Code:
#include <avr/interrupt.h>

#include <avr/io.h>
#include "usart.h"

#include "rf12.h"

//------------------------------------------------------------------------------



int main (void) 

{

	unsigned char test[100]="test hallo\n";

	usart_init(9600); // Serielle Schnittstelle initialisieren

	

	DDRB = (1<<3);

	PORTB = (1<<3);

	

	rf12_init();					// ein paar Register setzen (z.B. CLK auf 10MHz)

	rf12_setfreq(RF12FREQ(868.3));	// Sende/Empfangsfrequenz auf 433,92MHz einstellen

	rf12_setbandwidth(5, 1, 4);		// 200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm 

	rf12_setbaud(9600);				// 19200 baud

	rf12_setpower(0, 6);			// 1mW Ausgangangsleistung, 120k

	

  	while(1)

  	{ 

	

	rf12_txdata(test,13);

	for(long a = 0;a<100000;a++){asm("nop");};

	

	}

}
Außerdem habe ich noch folgende Stellen in RF12.c angepasst(angepasste stellen sind in Klammern gekennzeichnet) :

Code:
	for (i=0; i<10; i++)

		_delay_ms(10);			// wait until POR done



	rf12_trans(0xC0E0);			// AVR CLK: 10MHz

	rf12_trans(0x80"E"7);			// Enable FIFO

	rf12_trans(0xC2AB);			// Data Filter: internal

	rf12_trans(0xCA81);			// Set FIFO mode

	rf12_trans(0xE000);			// disable wakeuptimer

	rf12_trans(0xC800);			// disable low duty cycle

	rf12_trans(0xC4F7);			// AFC settings: autotuning: -10kHz...+7,5kHz

	rf12_trans(0x0000);
Und in RF12.h:
Code:
"//Mega 8 defines werden direkt gesetzt und nicht mehr der Controller erfragt!
"
	#define RF_PORT	PORTB
	#define RF_DDR	DDRB
	#define RF_PIN	PINB
	#define SDI		3
	#define SCK		5
	#define CS		2
	#define SDO		4
und:
Code:
// macro for calculating frequency value out of frequency in MHz
#define RF12FREQ(freq)	("(freq-860.0)/0.005)	"
Den Original Code kann man hier runterladen:

http://www.ulrichradig.de/home/uploa...E/USB_FUNK.zip

Leider funktioniert die Übertragung nicht ich habe beide Funkmodule voneinander in 10cm Abstand liegen! Allerdings auch noch an keinem eine Antenne (brauchen diese auch für so eine kurze Distanz eine ?).

Fällt vielleicht jemanden von euch so auf anhieb ein Fehler auf?

Freue mich auf eure Antworten

gruß Tobias