...
Code Block |
---|
#include "bsp.h" #include "mrfi.h" #include "nwk_types.h" #include "nwk_api.h" #include "bsp_leds.h" #include "bsp_buttons.h" static void linkTo(void); static uint8_t viestiLaskuri=0; static linkID_t sLinkID1 = 0; static uint8_t sRxCallback(linkID_t); void main(void) // Pääohjelma alkaa tästä { BSP_Init(); // laudan alustus SMPL_Init(sRxCallback); // radion alustus BSP_TOGGLE_LED2(); // punanen ledi paalle do do { ifif (BSP_BUTTON1()) // odotetaan etta nappia painetaan { break; } } while (1); linkTo(); // linkin muodostaminen whilewhile (1) ; } static void linkTo() // linkin muodostaminen { uint8_t msg[2];//, delay =0; while (SMPL_SUCCESS != SMPL_Link(&sLinkID1)) // odotetaan että linkki on muodostettu { // 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); // valitaan radiocontrol ja action // laitetaan viestin ensimmaiseen alkioon arvo 1 msg[0] = 1; // vastaan otin lukee sen vihreena ledina while (1) { NWK_DELAY(100); // 100ms delay 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; } |
...