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:
(Ist der Code für Mega8 auf den Pollin-Evaluation-Board mit angeschlossendem RFM01 ModulCode:' 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
Bin schon total verzweifelt
So schwer kann das doch wohl nicht sein....








Zitieren

Lesezeichen