Danke für deine Antwort.
Also um weiter Fehler ausschließen zu können, hat mir ein Freund nun 2 Pollin-Evaluation-Boards zur Verfügung gestellt. Eins mit dem RFM01 Modul und das zweite mit einem RFM02 Modul.
Ist zwar nicht das RFM12-Modul was ich brauch, aber erstmal egal.
WEIL:
Er hat da das Test-Programm von Pollin drauf gespielt. Nun übersetze ich den Quellcode von C in Basic um dann zumindest mal zu sehen ob meine Übersetzung korrekt ist.
Und wie ich bis jetzt feststellen musste, ist meine Übersetzung offensichtlich absolut falsch. Denn mit dem Basic-Code Empfängt das Modul nichts.
Also scheint etwas an der Konfiguration falsch zu sein.
Demm beim Empfangen wird ja nur Konfiguriert und dann auf den IRQ gewartet. Aber nach meiner Konfiguration über Basic kommt kein IRQ.
Daten kommen aber vom anderen Modul 100%ig an. Das beweist ja, wenn ich wieder das C-Programm auf spiele, dann empfängt der Chip was.
Also liegt hier definitiv der Fehler im Basic.
Meine Vermutung ist, der Fehler liegt genau genommen beim SPI.
Mit SPI hab ich noch nie gearbeitet und keinerlei Erfahrung.
Schaut euch den Code bitte mal an, ob ihr das Fehler finden könnt:
Code:
' Empfangen von Daten auf dem Evaluation-Board
' Modul: RFM01
' AVR: Mega8
$regfile = "m8def.dat"
$crystal = 8000000
'DDR = &B76543210 ; 0=Eingang ; 1=Ausgang
Ddrb = &B00000000
Ddrc = &B00000000
Ddrd = &B01110000
Portb = &B00000000
Portc = &B00000000
Portd = &B00000000
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128 , Noss = 1 ' LED zur Schleifenkontrolle
Declare Function Rf01_trans(byval Wert As Word) As Word
Dim A As Byte
Dim Temp As Word
Led1 Alias Portd.6
Led2 Alias Portd.5
Modul_power Alias Portd.4
' werden benötigt für rf12_ready
Spi_cs Alias Portb.2 ' SS-Pin
Config Spi_cs = Output
Spi_sdo Alias Pinb.4 ' MISO-PIN
Set Spi_cs
Spiinit
Wait 1
Reset Modul_power
For A = 1 To 6
Toggle Led1
Waitms 200
Next A
Reset Led1
Set Modul_power
Waitms 200
Temp = Rf01_trans(&H0000)
Temp = Rf01_trans(&H898a)
Temp = Rf01_trans(&Ha640)
Temp = Rf01_trans(&Hc847)
Temp = Rf01_trans(&Hc69b)
Temp = Rf01_trans(&Hc42a)
Temp = Rf01_trans(&Hc240)
Temp = Rf01_trans(&Hc080)
Temp = Rf01_trans(&Hce88)
Temp = Rf01_trans(&Hce8b)
Temp = Rf01_trans(&Hc081)
Ddrd.7 = 1 'FSK
Ddrd.2 = 0 'nIRQ
Do
Do
Loop Until Pind.2 = 0
Set Led2
Waitms 300
Reset Led2
Loop
Function Rf01_trans(byval Wert As Word) As Word
Local Lowbyte As Byte
Local Highbyte As Byte
Lowbyte = Wert And 255
Shift Wert , Right , 8
Reset Spi_cs
Highbyte = Spimove(wert)
Lowbyte = Spimove(lowbyte)
Set Spi_cs
Temp = Highbyte * 256
Temp = Temp + Lowbyte
Rf01_trans = Temp
End Function
End
(Ist der Code für Mega8 auf den Pollin-Evaluation-Board mit angeschlossendem RFM01 Modul
Bin schon total verzweifelt 
So schwer kann das doch wohl nicht sein....
Lesezeichen