M
mz8e08
Guest
on kytketty SD-kortin kanssa SPI nastat.
yhteyden STE suoraan chip select / orja Valitse of cc2500.Käyttö ei portti yhteyttä STE ja sirun valita PIN SD.
Käytän eZ430 sisälämpötila-anturi lämpötila, tallentaa kerätyt tiedot SD-flash-muistikortti, ja sitten lähettää tietoja SD-kortille yhteysosoitteen kautta cc2500 käyttäen SimpliciTI.
Vuorovaikutuksessa SD-kortti on onnistunut.Ensinnäkin yksi alan viesti kirjoittanut SD-kortille, ja sitten luki SD-kortille.Tämän jälkeen järjestelmä on siirtynyt liitäntä cc2500, yleisradio viesti yhteysosoitteen.Tämän jälkeen järjestelmä on kytkin SD-kortin kirjoittaa toinen ala viestin.Mutta kun yritän vaihtaa järjestelmän cc2500, päätelaite voi liittyä verkkoon.Järjestelmän pysähtyvät seuraavat
/ / Pitää yrittää liittää ...
while (SMPL_SUCCESS! = SMPL_Link (& linkID1))
(
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
)
Näyttää siltä, ensimmäinen vaihtaa SD ja SimpliciTI onnistuu, toinen ei.Koodi jälkeen:
# include "bsp.h"
# include "mrfi.h"
# include "nwk_types.h"
# include "nwk_api.h"
# include "bsp_leds.h"
# include "bsp_buttons.h"
# include "vlo_rand.h"
# include <msp430x22x4.h>
# include <hal_hardware_board.h>
# include <mmc.h>
# include <stdio.h>
unsigned long cardSize = 0;
unsigned char status = 1;
unsigned int timeout = 0;
int i = 0;
Int alalla;/ / unsigned char buffer [512];
uint8_t msg [512] / / muuttaa Zheng
uint8_t msgs [3];
linkID_t linkID1;
void linkTo (void);
void MCU_Init (void);
void sampledata ();
__no_init volatile Int tempOffset @ 0x10F4, / / Lämpötila korvata asetettu tuotannon
__no_init haihtuvien char Flash_Addr [4] @ 0x10F0, / / Flash-osoite asetettu satunnaisesti
void createRandomAddress ();
/ / void main (void) --------------------- muuttaa Zheng
void main (void)
(
addr_t lAddr;
WDTCTL = WDTPW WDTHOLD, / / Stop WDT
(
/ / Viive silmukan varmistaa asianmukainen käynnistyksen ennen SimpliciTI lisää DCO
/ / Tämä on yleensä räätälöity virtalähteen käytetty, ja tässä tapauksessa
/ / On ylimitoitettu turvallisuuden vuoksi laajaan jakeluun.
volatile int i;
for (i = 0, i <0x000f i ){}
)
jos (CALBC1_8MHZ == 0xFF) / / Älä aja, jos CAL arvot poistetaan
(
volatile int i;
P1DIR | = 0x03;
BSP_TURN_ON_LED1 ();
BSP_TURN_OFF_LED2 ();
while (1)
(
for (i = 0, i <0x000f i ){}
BSP_TOGGLE_LED2 ();
BSP_TOGGLE_LED1 ();
)
)
for (ala = 0; sektorin <3; ala )
(/ / Alustaa MSP430 ---------------------------------------- lisännyt Zheng
BCSCTL1 = CALBC1_8MHZ, / / Set DCO jälkeen Random toiminto
DCOCTL = CALDCO_8MHZ;
BCSCTL3 | = LFXT1S_2; / / LFXT1 = VLO
TACCTL0 = CCIE; / / TACCR0 keskeyttää käytössä
TACCR0 = 12000; / / ~ 1 sec
TACTL = TASSEL_1 MC_1, / / ACLK, upmode
/ / näytteen lämpötila tiedot
/ / Uint8_t msg [3];
/ / LinkID_t linkID1;
volatile long temp;
Int degC, voltti;
int tulokset [2];
for (i = 0, i <6; i = 3)
(
ADC10CTL1 = INCH_10 ADC10DIV_4, / / Temp Sensor ADC10CLK / 5
ADC10CTL0 = SREF_1 ADC10SHT_3 REFON ADC10ON ADC10IE ADC10SR;
for (degC = 10; degC> 0; degC -) / / viive, jotta viittaus asettua
ADC10CTL0 | = ENC ADC10SC, / / Näytteenotto ja muuntaminen alkaa
__bis_SR_register (CPUOFF GIE), / / LPM0 ja keskeyttää käytössä
tulokset [0] = ADC10MEM;
ADC10CTL0 & = ~ ENC;
ADC10CTL1 = INCH_11; / / AVcc / 2
ADC10CTL0 = SREF_1 ADC10SHT_2 REFON ADC10ON ADC10IE REF2_5V;
for (degC = 10; degC> 0; degC -) / / viive, jotta viittaus asettua
ADC10CTL0 | = ENC ADC10SC, / / Näytteenotto ja muuntaminen alkaa
__bis_SR_register (CPUOFF GIE), / / LPM0 ja keskeyttää käytössä
tulokset [1] = ADC10MEM;
ADC10CTL0 & = ~ ENC;
ADC10CTL0 & = ~ (REFON ADC10ON), / / sammuta / D virran säästämiseksi
/ / ° C = ((A10/1024) * 1500mV)-986mV) * 1/3.55mV = A10 * 423/1024 - 278
/ / Lämpötila toimitetaan kokonaisluku jossa 32,1 = 321
/ / Siis 4230 sijasta 423
temp = tulokset [0];
degC = ((temp - 673) * 4230) / 1024;
jos (tempOffset! = 0xFFFF)
(
degC = tempOffset;
)
/ * viestin muodon, UB = ylempi Byte, LB = pienempi Byte
-------------------------------
| degC LB | degC UB | voltin LB |
-------------------------------
0 1 2
* /
temp = tulokset [1];
Volt = (temp * 25) / 512;
msg = degC &0xFF;
msg [i 1] = (degC>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />
&0xFF;
msg [i 2] = Volt;
)
for (i = 6; i <10; i ) msg = '0 ';
/ / Alustaa MSP430 ---------------------------------------- lisännyt Zheng
BCSCTL1 = CALBC1_8MHZ, / / Set DCO jälkeen Random toiminto
DCOCTL = CALDCO_8MHZ;
BCSCTL3 | = LFXT1S_2; / / LFXT1 = VLO
TACCTL0 = CCIE; / / TACCR0 keskeyttää käytössä
TACCR0 = 12000; / / ~ 1 sec
TACTL = TASSEL_1 MC_1, / / ACLK, upmode
/ / Alustaa, MMC / SD-kortti
while (status! = 0) / / Jos paluu ei NULL virhe ei esiinny ja
/ / MMC / SD-kortti tulee alustaa uudelleen
(
status = mmcInit ();
timeout ;
if (timeout == 150) / / Kokeile 50 kertaa till virhe
(
/ / Printf ( "Ei MMC / SD-kortti löytynyt!% X \ n", status);
break;
)
)
/ *
while ((mmcPing ()! = MMC_SUCCESS)), / / Odota, kunnes kortti ------ muuttaa Zheng (poistetaan syy ei CD)
* /
/ / Lue kokoinen siitä arvopaperikeskuksen rekisteriin
cardSize = mmcReadCardSize ();
/ *
/ / Vapaa alojen MMC
for (i = 0, i <512; i ) puskuri = 0,
mmcWriteSector (0, buffer); / / kirjoittaa 512 tavua iso lohko alkaa (mukautettu) osoite
* /
/ / Store lämpötila tietoja puskuriin -------- lisännyt Zheng
mmcWriteSector (ala, MSG), / / kirjoittaa 512 tavua iso lohko alkaa (mukautettu) osoite
mmcReadSector (ala, MSG), / / Lue koko Tavu iso lohko alkaa osoitteeseen./ /开始重新初始化--------------------------------- lisännyt Zheng
/ / SimpliciTI muuttaa sataman PIN-asetukset sekä
P1DIR = 0xFF;
P1OUT = 0x00;
P2DIR = 0x27;
P2OUT = 0x00;
P3DIR = 0xC0;
P3OUT = 0x00;
P4DIR = 0xFF;
P4OUT = 0x00;jos (Flash_Addr [0] == 0xFF & &
Flash_Addr [1] == 0xFF & &
Flash_Addr [2] == 0xFF & &
Flash_Addr [3] == 0xFF)
(
createRandomAddress () / / asettaa Random laitteen osoite käynnistyksen
)
lAddr.addr [0] = Flash_Addr [0];
lAddr.addr [1] = Flash_Addr [1];
lAddr.addr [2] = Flash_Addr [2];
lAddr.addr [3] = Flash_Addr [3];
SMPL_Ioctl (IOCTL_OBJ_ADDR, IOCTL_ACT_SET, ja lAddr);/ / alustaa MSP430 ----------- lisätty y Zheng
BCSCTL1 = CALBC1_8MHZ, / / Set DCO jälkeen Random toiminto
DCOCTL = CALDCO_8MHZ;
BCSCTL3 | = LFXT1S_2; / / LFXT1 = VLO
TACCTL0 = CCIE; / / TACCR0 keskeyttää käytössä
TACCR0 = 12000; / / ~ 1 sec
TACTL = TASSEL_1 MC_1, / / ACLK, upmode
/ /初始化结束/ / Pitää yrittää liittyä kunnes se onnistuu.Vaihtaa LEDIT osoittaa, että
/ / Liittyminen ei ole tapahtunut.LED3 on punainen, mutta merkintä LED 4 EXP
/ / Board Silkkipaino.LED1 on vihreä.
while (SMPL_NO_JOIN == SMPL_Init ((uint8_t (*) (linkID_t)) 0))
(
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED2 ();
)
/ / Ehdoton linkki AP joka kuuntelee määrä onnistunut liittyä.
/ / LinkTo ();
/ / Pitää yrittää liittää ...
while (SMPL_SUCCESS! = SMPL_Link (& linkID1))
(
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
)
/ / Poista kaikki LED
jos (BSP_LED1_IS_ON ())
(
BSP_TOGGLE_LED1 ();
)
jos (BSP_LED2_IS_ON ())
(
BSP_TOGGLE_LED2 ();
)
/ / kirjoita LPM3 kunnes ajastin keskeyttää
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, "");
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_AWAKE, "");
BSP_TOGGLE_LED2 ();
/ / While (1)
for (i = 0, i <9; i = 3)
(msgs [0] = msg ;
msgs [1] = msg [i 1];
msgs [2] = msg [i 2];
(if (SMPL_SUCCESS == SMPL_Send (linkID1, Sisältö, sizeof (Sisältö)))
(
BSP_TOGGLE_LED2 ();
)
muuten
(
BSP_TOGGLE_LED2 ();
BSP_TOGGLE_LED1 ();
)
)
)
/ / Printf ( "Maali linkto \ n");
)
)void createRandomAddress ()
(
unsigned int rand, rand2;
tehdä
(
rand = TI_getRandomIntegerFromVLO (), / / ensimmäinen tavu ei voi olla 0x00 ja 0xFF
)
while ((randia & 0xFF00) == 0xFF00 | | (randia & 0xFF00) == 0x0000);
rand2 = TI_getRandomIntegerFromVLO ();
BCSCTL1 = CALBC1_1MHZ, / / Set DCO on 1MHz
DCOCTL = CALDCO_1MHZ;
FCTL2 = FWKEY FSSEL0 FN1, / / MCLK / 3 Flash Ajoitus Generator
FCTL3 = FWKEY Locka, / / Vapaa Lock & Locka bittiä
FCTL1 = FWKEY WRT, / / Set WRT bittinen kirjoitetaan
Flash_Addr [0] = (rand>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />
& 0xFF;
Flash_Addr [1] = rand & 0xFF;
Flash_Addr [2] = (rand2>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />
& 0xFF;
Flash_Addr [3] = rand2 & 0xFF;
FCTL1 = FWKEY; / / Vapaa WRT vähän
FCTL3 = FWKEY Locka LOCK; / / Set Lock & Locka vähän
)
/ *
void linkTo ()
(
/ / Pitää yrittää liittää ...
while (SMPL_SUCCESS! = SMPL_Link (& linkID1))
(
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
)
/ / Poista kaikki LED
jos (BSP_LED1_IS_ON ())
(
BSP_TOGGLE_LED1 ();
)
jos (BSP_LED2_IS_ON ())
(
BSP_TOGGLE_LED2 ();
)
/ / kirjoita LPM3 kunnes ajastin keskeyttää
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, "");
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_AWAKE, "");
BSP_TOGGLE_LED2 ();
/ / While (1)
for (i = 0, i <510; i = 3)
(msgs [0] = msg ;
msgs [1] = msg [i 1];
msgs [2] = msg [i 2];
(if (SMPL_SUCCESS == SMPL_Send (linkID1, Sisältö, sizeof (Sisältö)))
(
BSP_TOGGLE_LED2 ();
)
muuten
(
BSP_TOGGLE_LED2 ();
BSP_TOGGLE_LED1 ();
)
)
)
/ / Printf ( "Maali linkto \ n");
)
* /
/*------------------------------------------------ ------------------------------
* ADC10 keskeyttää palvelun rutiini
-------------------------------------------------- ----------------------------*/
# pragma vector = ADC10_VECTOR
__interrupt void ADC10_ISR (void)
(
__bic_SR_register_on_exit (CPUOFF) / / Vapaa CPUOFF verran 0 (SR)
)
/*------------------------------------------------ ------------------------------
* Ajastin A0 keskeyttää palvelun rutiini
-------------------------------------------------- ----------------------------*/
# pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
(
__bic_SR_register_on_exit (LPM3_bits) / / Vapaa LPM3 verran 0 (SR)
)
yhteyden STE suoraan chip select / orja Valitse of cc2500.Käyttö ei portti yhteyttä STE ja sirun valita PIN SD.
Käytän eZ430 sisälämpötila-anturi lämpötila, tallentaa kerätyt tiedot SD-flash-muistikortti, ja sitten lähettää tietoja SD-kortille yhteysosoitteen kautta cc2500 käyttäen SimpliciTI.
Vuorovaikutuksessa SD-kortti on onnistunut.Ensinnäkin yksi alan viesti kirjoittanut SD-kortille, ja sitten luki SD-kortille.Tämän jälkeen järjestelmä on siirtynyt liitäntä cc2500, yleisradio viesti yhteysosoitteen.Tämän jälkeen järjestelmä on kytkin SD-kortin kirjoittaa toinen ala viestin.Mutta kun yritän vaihtaa järjestelmän cc2500, päätelaite voi liittyä verkkoon.Järjestelmän pysähtyvät seuraavat
/ / Pitää yrittää liittää ...
while (SMPL_SUCCESS! = SMPL_Link (& linkID1))
(
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
)
Näyttää siltä, ensimmäinen vaihtaa SD ja SimpliciTI onnistuu, toinen ei.Koodi jälkeen:
# include "bsp.h"
# include "mrfi.h"
# include "nwk_types.h"
# include "nwk_api.h"
# include "bsp_leds.h"
# include "bsp_buttons.h"
# include "vlo_rand.h"
# include <msp430x22x4.h>
# include <hal_hardware_board.h>
# include <mmc.h>
# include <stdio.h>
unsigned long cardSize = 0;
unsigned char status = 1;
unsigned int timeout = 0;
int i = 0;
Int alalla;/ / unsigned char buffer [512];
uint8_t msg [512] / / muuttaa Zheng
uint8_t msgs [3];
linkID_t linkID1;
void linkTo (void);
void MCU_Init (void);
void sampledata ();
__no_init volatile Int tempOffset @ 0x10F4, / / Lämpötila korvata asetettu tuotannon
__no_init haihtuvien char Flash_Addr [4] @ 0x10F0, / / Flash-osoite asetettu satunnaisesti
void createRandomAddress ();
/ / void main (void) --------------------- muuttaa Zheng
void main (void)
(
addr_t lAddr;
WDTCTL = WDTPW WDTHOLD, / / Stop WDT
(
/ / Viive silmukan varmistaa asianmukainen käynnistyksen ennen SimpliciTI lisää DCO
/ / Tämä on yleensä räätälöity virtalähteen käytetty, ja tässä tapauksessa
/ / On ylimitoitettu turvallisuuden vuoksi laajaan jakeluun.
volatile int i;
for (i = 0, i <0x000f i ){}
)
jos (CALBC1_8MHZ == 0xFF) / / Älä aja, jos CAL arvot poistetaan
(
volatile int i;
P1DIR | = 0x03;
BSP_TURN_ON_LED1 ();
BSP_TURN_OFF_LED2 ();
while (1)
(
for (i = 0, i <0x000f i ){}
BSP_TOGGLE_LED2 ();
BSP_TOGGLE_LED1 ();
)
)
for (ala = 0; sektorin <3; ala )
(/ / Alustaa MSP430 ---------------------------------------- lisännyt Zheng
BCSCTL1 = CALBC1_8MHZ, / / Set DCO jälkeen Random toiminto
DCOCTL = CALDCO_8MHZ;
BCSCTL3 | = LFXT1S_2; / / LFXT1 = VLO
TACCTL0 = CCIE; / / TACCR0 keskeyttää käytössä
TACCR0 = 12000; / / ~ 1 sec
TACTL = TASSEL_1 MC_1, / / ACLK, upmode
/ / näytteen lämpötila tiedot
/ / Uint8_t msg [3];
/ / LinkID_t linkID1;
volatile long temp;
Int degC, voltti;
int tulokset [2];
for (i = 0, i <6; i = 3)
(
ADC10CTL1 = INCH_10 ADC10DIV_4, / / Temp Sensor ADC10CLK / 5
ADC10CTL0 = SREF_1 ADC10SHT_3 REFON ADC10ON ADC10IE ADC10SR;
for (degC = 10; degC> 0; degC -) / / viive, jotta viittaus asettua
ADC10CTL0 | = ENC ADC10SC, / / Näytteenotto ja muuntaminen alkaa
__bis_SR_register (CPUOFF GIE), / / LPM0 ja keskeyttää käytössä
tulokset [0] = ADC10MEM;
ADC10CTL0 & = ~ ENC;
ADC10CTL1 = INCH_11; / / AVcc / 2
ADC10CTL0 = SREF_1 ADC10SHT_2 REFON ADC10ON ADC10IE REF2_5V;
for (degC = 10; degC> 0; degC -) / / viive, jotta viittaus asettua
ADC10CTL0 | = ENC ADC10SC, / / Näytteenotto ja muuntaminen alkaa
__bis_SR_register (CPUOFF GIE), / / LPM0 ja keskeyttää käytössä
tulokset [1] = ADC10MEM;
ADC10CTL0 & = ~ ENC;
ADC10CTL0 & = ~ (REFON ADC10ON), / / sammuta / D virran säästämiseksi
/ / ° C = ((A10/1024) * 1500mV)-986mV) * 1/3.55mV = A10 * 423/1024 - 278
/ / Lämpötila toimitetaan kokonaisluku jossa 32,1 = 321
/ / Siis 4230 sijasta 423
temp = tulokset [0];
degC = ((temp - 673) * 4230) / 1024;
jos (tempOffset! = 0xFFFF)
(
degC = tempOffset;
)
/ * viestin muodon, UB = ylempi Byte, LB = pienempi Byte
-------------------------------
| degC LB | degC UB | voltin LB |
-------------------------------
0 1 2
* /
temp = tulokset [1];
Volt = (temp * 25) / 512;
msg = degC &0xFF;
msg [i 1] = (degC>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />
&0xFF;
msg [i 2] = Volt;
)
for (i = 6; i <10; i ) msg = '0 ';
/ / Alustaa MSP430 ---------------------------------------- lisännyt Zheng
BCSCTL1 = CALBC1_8MHZ, / / Set DCO jälkeen Random toiminto
DCOCTL = CALDCO_8MHZ;
BCSCTL3 | = LFXT1S_2; / / LFXT1 = VLO
TACCTL0 = CCIE; / / TACCR0 keskeyttää käytössä
TACCR0 = 12000; / / ~ 1 sec
TACTL = TASSEL_1 MC_1, / / ACLK, upmode
/ / Alustaa, MMC / SD-kortti
while (status! = 0) / / Jos paluu ei NULL virhe ei esiinny ja
/ / MMC / SD-kortti tulee alustaa uudelleen
(
status = mmcInit ();
timeout ;
if (timeout == 150) / / Kokeile 50 kertaa till virhe
(
/ / Printf ( "Ei MMC / SD-kortti löytynyt!% X \ n", status);
break;
)
)
/ *
while ((mmcPing ()! = MMC_SUCCESS)), / / Odota, kunnes kortti ------ muuttaa Zheng (poistetaan syy ei CD)
* /
/ / Lue kokoinen siitä arvopaperikeskuksen rekisteriin
cardSize = mmcReadCardSize ();
/ *
/ / Vapaa alojen MMC
for (i = 0, i <512; i ) puskuri = 0,
mmcWriteSector (0, buffer); / / kirjoittaa 512 tavua iso lohko alkaa (mukautettu) osoite
* /
/ / Store lämpötila tietoja puskuriin -------- lisännyt Zheng
mmcWriteSector (ala, MSG), / / kirjoittaa 512 tavua iso lohko alkaa (mukautettu) osoite
mmcReadSector (ala, MSG), / / Lue koko Tavu iso lohko alkaa osoitteeseen./ /开始重新初始化--------------------------------- lisännyt Zheng
/ / SimpliciTI muuttaa sataman PIN-asetukset sekä
P1DIR = 0xFF;
P1OUT = 0x00;
P2DIR = 0x27;
P2OUT = 0x00;
P3DIR = 0xC0;
P3OUT = 0x00;
P4DIR = 0xFF;
P4OUT = 0x00;jos (Flash_Addr [0] == 0xFF & &
Flash_Addr [1] == 0xFF & &
Flash_Addr [2] == 0xFF & &
Flash_Addr [3] == 0xFF)
(
createRandomAddress () / / asettaa Random laitteen osoite käynnistyksen
)
lAddr.addr [0] = Flash_Addr [0];
lAddr.addr [1] = Flash_Addr [1];
lAddr.addr [2] = Flash_Addr [2];
lAddr.addr [3] = Flash_Addr [3];
SMPL_Ioctl (IOCTL_OBJ_ADDR, IOCTL_ACT_SET, ja lAddr);/ / alustaa MSP430 ----------- lisätty y Zheng
BCSCTL1 = CALBC1_8MHZ, / / Set DCO jälkeen Random toiminto
DCOCTL = CALDCO_8MHZ;
BCSCTL3 | = LFXT1S_2; / / LFXT1 = VLO
TACCTL0 = CCIE; / / TACCR0 keskeyttää käytössä
TACCR0 = 12000; / / ~ 1 sec
TACTL = TASSEL_1 MC_1, / / ACLK, upmode
/ /初始化结束/ / Pitää yrittää liittyä kunnes se onnistuu.Vaihtaa LEDIT osoittaa, että
/ / Liittyminen ei ole tapahtunut.LED3 on punainen, mutta merkintä LED 4 EXP
/ / Board Silkkipaino.LED1 on vihreä.
while (SMPL_NO_JOIN == SMPL_Init ((uint8_t (*) (linkID_t)) 0))
(
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED2 ();
)
/ / Ehdoton linkki AP joka kuuntelee määrä onnistunut liittyä.
/ / LinkTo ();
/ / Pitää yrittää liittää ...
while (SMPL_SUCCESS! = SMPL_Link (& linkID1))
(
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
)
/ / Poista kaikki LED
jos (BSP_LED1_IS_ON ())
(
BSP_TOGGLE_LED1 ();
)
jos (BSP_LED2_IS_ON ())
(
BSP_TOGGLE_LED2 ();
)
/ / kirjoita LPM3 kunnes ajastin keskeyttää
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, "");
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_AWAKE, "");
BSP_TOGGLE_LED2 ();
/ / While (1)
for (i = 0, i <9; i = 3)
(msgs [0] = msg ;
msgs [1] = msg [i 1];
msgs [2] = msg [i 2];
(if (SMPL_SUCCESS == SMPL_Send (linkID1, Sisältö, sizeof (Sisältö)))
(
BSP_TOGGLE_LED2 ();
)
muuten
(
BSP_TOGGLE_LED2 ();
BSP_TOGGLE_LED1 ();
)
)
)
/ / Printf ( "Maali linkto \ n");
)
)void createRandomAddress ()
(
unsigned int rand, rand2;
tehdä
(
rand = TI_getRandomIntegerFromVLO (), / / ensimmäinen tavu ei voi olla 0x00 ja 0xFF
)
while ((randia & 0xFF00) == 0xFF00 | | (randia & 0xFF00) == 0x0000);
rand2 = TI_getRandomIntegerFromVLO ();
BCSCTL1 = CALBC1_1MHZ, / / Set DCO on 1MHz
DCOCTL = CALDCO_1MHZ;
FCTL2 = FWKEY FSSEL0 FN1, / / MCLK / 3 Flash Ajoitus Generator
FCTL3 = FWKEY Locka, / / Vapaa Lock & Locka bittiä
FCTL1 = FWKEY WRT, / / Set WRT bittinen kirjoitetaan
Flash_Addr [0] = (rand>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />
& 0xFF;
Flash_Addr [1] = rand & 0xFF;
Flash_Addr [2] = (rand2>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />
& 0xFF;
Flash_Addr [3] = rand2 & 0xFF;
FCTL1 = FWKEY; / / Vapaa WRT vähän
FCTL3 = FWKEY Locka LOCK; / / Set Lock & Locka vähän
)
/ *
void linkTo ()
(
/ / Pitää yrittää liittää ...
while (SMPL_SUCCESS! = SMPL_Link (& linkID1))
(
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
BSP_TOGGLE_LED1 ();
BSP_TOGGLE_LED2 ();
)
/ / Poista kaikki LED
jos (BSP_LED1_IS_ON ())
(
BSP_TOGGLE_LED1 ();
)
jos (BSP_LED2_IS_ON ())
(
BSP_TOGGLE_LED2 ();
)
/ / kirjoita LPM3 kunnes ajastin keskeyttää
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, "");
__bis_SR_register (LPM3_bits GIE), / / LPM3 ja keskeyttää käytössä
SMPL_Ioctl (IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_AWAKE, "");
BSP_TOGGLE_LED2 ();
/ / While (1)
for (i = 0, i <510; i = 3)
(msgs [0] = msg ;
msgs [1] = msg [i 1];
msgs [2] = msg [i 2];
(if (SMPL_SUCCESS == SMPL_Send (linkID1, Sisältö, sizeof (Sisältö)))
(
BSP_TOGGLE_LED2 ();
)
muuten
(
BSP_TOGGLE_LED2 ();
BSP_TOGGLE_LED1 ();
)
)
)
/ / Printf ( "Maali linkto \ n");
)
* /
/*------------------------------------------------ ------------------------------
* ADC10 keskeyttää palvelun rutiini
-------------------------------------------------- ----------------------------*/
# pragma vector = ADC10_VECTOR
__interrupt void ADC10_ISR (void)
(
__bic_SR_register_on_exit (CPUOFF) / / Vapaa CPUOFF verran 0 (SR)
)
/*------------------------------------------------ ------------------------------
* Ajastin A0 keskeyttää palvelun rutiini
-------------------------------------------------- ----------------------------*/
# pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
(
__bic_SR_register_on_exit (LPM3_bits) / / Vapaa LPM3 verran 0 (SR)
)