MIRF24 mit Mega8 PortC will nicht laufen

Jony09
 
Avatar
 
Subject:

MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 14.02.2011 - 12:25  ·  #1
Ich versuche gerade mit dem Mirf24 Treiber ein Broadcast Telegramm zu senden, jedoch Bricht der immer mit Fehler ab. Das Initialisieren klappt allerdings.

Die LED Blinkt Kurz wenn die Initialisierung geklappt hat. Danach sollte sie nach jedem Telegramm einmal Kurz blinken, mit kurzer Pause. Allerdings Blinkt die LED länger und macht eine lange Pause, was auf einen Fehler schließen lässt.

Angeschlossen ist :

CE = PB0
/CS = PB1
SCK = PB2
MOSI = PB3
MISO = PB4
/IRQ = PB5

kann mir jemand helfen?

Johannes



program Funk;

{$NOSHADOW}
{ $WG} {global Warnings off}

Device = mega8, VCC=5;
{ $BOOTRST $00C00} {Reset Jump to $00C00}

Define_Fuses
// Override_Fuses;
// NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [];

Import SysTick, MIRF24port;

From System Import ;


Define
ProcClock = 16000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0040, iData;
FrameSize = $0040, iData;
MIRF24port = SPI_Soft, PortC, 2, 3, 4, 1, 0, 5;
// SCK, MOSI, MISO, SS, CE, IRQ
uses uMIRF24;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}

Var
txBuff : array[0..31] of byte;
txString[@txBuff] : string[30];
rxBuff : array[0..31] of byte;
rxCnt : byte;
rxString[@rxBuff] : string[30];
idx : byte;
LEDsend[@PortD,7] : bit;
{--------------------------------------------------------------}
{ functions }



{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
DDRD := %10000000;
incl(LedSend);
EnableInts;
mrfSetChan(mrfChan13, false);
mrfSetPower(mrfdBm0);
mrfSetLocalAddr(0);
mrfSetRetryMax(10);
mrfSetRetryTimeOut(4); // 5x 250usec -> 1.25msec
mrfSetRFspeed(mrfRF250);
if mrfInit then
excl(LedSend);
mdelay(500);
incl(LedSend);
idx:= 0;
loop
txString:= 'Hello MIRF24 Broadcast';
if mrfTxPacket(2, @txBuff, 24, true) then
excl(LedSend);
mdelay(100);
incl(LedSend);
mDelay(100); // wait for the slave beep!
else
excl(LedSend);
mdelay(500);
incl(LedSend);
mDelay(1000);
endif;

{ txString:= 'Hello MIRF24 Data ' +ByteToStr(idx);
if mrfTxPacket(2, @txBuff, 30, false) then
mDelay(100); // wait for the slave beep!
else
mDelay(1000);
endif; }
inc(idx);
endloop;
else

endif;

end Funk.
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1373
Registered: 03 / 2005
Subject:

Re: MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 14.02.2011 - 15:03  ·  #2
I realise that this is essentially the demo, but I must admit I can't see how it can work.

The line

if mrfTxPacket(2, @txBuff, 24, true) then

by definition broadcasts a packet, so the slave cannot (must not) respond, so I don't see how the line can ever return other than a fixed value (be it true or false) regardless of the state of the slave.

Can someone explain?

Regards

merlin.
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 59
Posts: 956
Registered: 09 / 2007
Subject:

Re: MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 14.02.2011 - 15:58  ·  #3
Hi jony09,
Du solltest Deinen Code schon so posten wie Du ihn compilierst.

Angeschlossen ist :

CE = PB0
/CS = PB1
SCK = PB2
MOSI = PB3
MISO = PB4
/IRQ = PB5

MIRF24port = SPI_Soft, PortC, 2, 3, 4, 1, 0, 5;


Das passt ja nicht.

Gruß
miparo
Jony09
 
Avatar
 
Subject:

Re: MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 14.02.2011 - 16:03  ·  #4
Sorry,

sollte jeweils C heißen, ist am ADC Port angeschlossen.


Habe aber auch mal wieder SPI vom PortB genommen, und auch einen andere Platine, aber es will nicht..

Johannes
Jony09
 
Avatar
 
Subject:

Re: MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 15.02.2011 - 09:15  ·  #5
So der Fehler ist gefunden,

mit einem älteren Compiler Funktioniert das Telegramm. Danke an miparo für die Hilfe. Warte dann auf das nächste Update, da wird es sicher wieder gehen.

Johannes
wom
 
Avatar
 
Subject:

Re: MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 15.02.2011 - 17:33  ·  #6
Hallo jJony09

ich hatte das gleiche Problem. Sehe ich das richtig, dass mit der neuen Version der MIRF24 probleme hat ?

Gruss
wom
Jony09
 
Avatar
 
Subject:

Re: MIRF24 mit Mega8 PortC will nicht laufen

 · 
Posted: 15.02.2011 - 19:27  ·  #7
Hallo wom,

ja genau so ist es. In der Compilerversion 4.99.31 hat sich wohl einen Bug eingeschlichen, durch die Umbauten für den XMega.

In der nächsten Version wird der wohl raus sein.

Gruß Jony09
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 13   120   133 · Page-Gen-Time: 0.01842s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI