-
Created by Unknown User (m0702505), last modified by Unknown User (tonini) on 11.2.2011
You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 9
Next »
Lähetyskoodi oma tekemä :
#include "bsp.h"
#include "mrfi.h"
#include "nwk_types.h"
#include "nwk_api.h"
#include "bsp_leds.h"
#include "bsp_buttons.h"
void toggleLED(uint8_t);
static void linkTo(void);
static uint8_t viestiLaskuri=0;
static linkID_t sLinkID1 = 0;
static uint8_t sRxCallback(linkID_t);
void main(void)
{
BSP_Init(); // laudan alustus
SMPL_Init(sRxCallback); // radion alustus
BSP_TOGGLE_LED2(); // punanen ledi paalle
do {
if (BSP_BUTTON1()) // odotetaan etta nappia painetaan
{
break;
}
} while (1);
linkTo(); // linkin muodostaminen
while (1) ;
}
static void linkTo()
{
uint8_t msg[2];//, delay =0;
while (SMPL_SUCCESS != SMPL_Link(&sLinkID1))
{
// ledit vilkkuu kunnes linkki on onnistunut
BSP_TOGGLE_LED1();
BSP_TOGGLE_LED2();
NWK_DELAY(50); // ledit vilkkuu 50ms valein
}
// kun linkki onnistunut laitetaan vihrea ledi paalle
BSP_TOGGLE_LED1();
// radion kaynnistys
SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0);
// laitetaan viestin ensimmaiseen alkioon arvo 1
msg[0] = 1; // vastaan otin lukee sen vihreena ledina
while (1)
{
NWK_DELAY(100);
msg[1] = ++viestiLaskuri; // viestin toiseen alkioon viestien maara
SMPL_Send(sLinkID1, msg, sizeof(msg)); // lahetetaan viesti
}
}
static uint8_t sRxCallback(linkID_t port) // viestin takaisin vastaanotto
{
uint8_t msg[2], len;
// tarkisetaan vastaan otetavan viestin ID
if (port == sLinkID1)
{
if ((SMPL_SUCCESS == SMPL_Receive(sLinkID1, msg, &len)))
{
BSP_TOGGLE_LED2(); // jos viestin vastaan otto onnistunut niin punanen ledi paalle
return 1;
}
}
return 0;
}
Vastaanotto:
#include "bsp.h"
#include "mrfi.h"
#include "nwk_types.h"
#include "nwk_api.h"
#include "bsp_leds.h"
#include "bsp_buttons.h"
static void linkFrom(void);
void toggleLED(uint8_t);
static uint8_t viestiLaskuri = 0;
static linkID_t sLinkID2 = 0;
static volatile uint8_t viestiVastaanotettu = 0;
static uint8_t sRxCallback(linkID_t);
void main (void)
{
BSP_Init(); // laudan alustus
SMPL_Init(sRxCallback); // radion ja SimpliTi alustus
BSP_TOGGLE_LED1(); // vihreä ledi päälle
do {
if (BSP_BUTTON1()) // odotetaan että nappia painetaan
{
break;
}
} while (1);
linkFrom(); // linkin muodostaminen
while (1) ;
}
static void linkFrom()
{
uint8_t msg[2];
/* listen for link forever... */
while (1)
{
BSP_TOGGLE_LED2();
if (SMPL_SUCCESS == SMPL_LinkListen(&sLinkID2))
{
break;
}
}
// radion käynnistys
SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_RXON, 0);
msg[0] = 2;
while (1)
{
if (viestiVastaanotettu)
{
msg[1] = ++viestiLaskuri;
SMPL_Send(sLinkID2, msg, sizeof(msg));
viestiVastaanotettu = 0;
}
}
}
static uint8_t sRxCallback(linkID_t port) // viestin vastaanotto
{
uint8_t msg[2], len;
// tarkisetaan vastaan otetavan viestin ID
if (port == sLinkID2)
{
if (SMPL_SUCCESS == SMPL_Receive(sLinkID2, msg, &len))
{
BSP_TOGGLE_LED1(); // jos viestin vastaan otto onnistunut niin vihreä ledi päälle
viestiVastaanotettu = 1;
return 1;
}
}
return 0;
}
You must log in to comment.