hallo nochmal habe jetzt mal einen kleinen code geschrieben
aber wie ich schon dachte funktioniert er nicht

vllt schau sich das ja mal jemand von euch an

also hier meine rfm12.c

Code:
#ifndef F_CPU 
#define F_CPU 4000000L	//Controllerfrequenz für die util/delay.h
#endif
#include <avr/io.h>
#include <avr/iom16.h>
#include <util/delay.h>
#include <inttypes.h>
#include <math.h>
#include "RFM12.h"


#define SCK PB7
#define MOSI PB5
#define SS PB4
#ifndef SPI
#define SPI PINB
#endif
#ifndef MISO
#define MISO PINB6
#endif
#define DCLK PIND3
#define nIRQ PIND2

void senden_mit_rfm12(int wert)
{
	int werte_array[16];
	int pruefung=wert;
	int i=0;
	for(i = 0; i<=15; i=i+1)
	{
		pruefung=pruefung - pow(2,i);
		if (pruefung >=0)
		{
			werte_array[i]=1;
		}
		else
		{
			pruefung=pruefung + pow(2,i);
			werte_array[i]=0;
		}
	}

	while(!(PIND & (1<<nIRQ)))
	{

	}	

	int j=0;
	for(j = 0; j<=15; j=j+1)
	{
		if(werte_array[j] == 1);
		{
			PORTB |= (1<<MOSI);
		}
		if(werte_array[j] == 0);
		{
			PORTB &= ~(1<<MOSI);
		}
		PORTB |= (1<<SCK);
		_delay_ms(1);
		PORTB &= ~(1<<SCK);
	}
}

void register_setzen_an_rfm12(int wert)
{
	PORTB |= (1<<SS);
	senden_mit_rfm12(wert);
	PORTB &= ~(1<<SS);
}

void init_rfm12(void)
{
	

	DDRB |= (1<<SCK)|(1<<MOSI)|(1<<SS);
	PORTB = 0;
	
	register_setzen_an_rfm12(0x80D7);		//433Mhz
	register_setzen_an_rfm12(0x82B9);		//enable transmitter enable synthesizer enable crystal oszilator disable CLK-PIN
	register_setzen_an_rfm12(0xA4B0);		//433Mhz
	register_setzen_an_rfm12(0xC6BD);		//9600Baud

}

und hier der interrupt in meiner main.c

Code:
#define SPI PINB
#define MISO PINB6

int abfangarray[16];
int empf_wert;
int x = 0;


ISR(INT0_vect)
{
	abfangarray[x] = (SPI & (1<<MISO));
	if(x<15)
		x=x+1;
	else
	{
		x=0;
		int y;
		empf_wert=0;
		for(y=0;y<=15;y=y+1)
		{
			if(abfangarray[y]==1)
			{
				empf_wert = empf_wert + pow(2,y);
			}		
		}
	}
}
ich denke mal der Haken liegt an der art und weise wie ich die daten an den RFM12 übergeben nur hab ich verstanden das es so sein soll

da ich kein assembler beherrsche bzw benutze hab ich die genannte sbi und cbi methode durch einfache ausgangsbeschaltung ersetzt
das dürfte aber doch auch funktionieren oder?


bei meinem interrupt bin ich mir gerad garnich sicher wie das signal vom MISO ausgelesen wird
sprich woher weiß der controller (außer er zählt wie in meinem fall mit) das wenn ein bit kommt das es das erste ist und nicht irgendeins mitten drin
und kommt beim empfangen auch das 2byte große signal an oder nur ein byte im ASCII-format?

bedanke mich schonmal für jede antwort oder verbesserung meines codes

grüße