// Receiver #include "mrfi.h" #include "serial/serial.h" //#include "WSAN_cnf.h" #define DELAY_CYCLES 80000 #define msg_ON 0x09 #define tx_channel ((uint8_t)msg_ON*10) void main(void) { WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer P1OUT = BIT0; // P1.0 input+pullup P1REN |= BIT0; // P1.0 input+pullup P1IE |= BIT0; // P1.0 interrupt enable P1IES |= BIT0; // P1.0 Hi/Lo edge P1IFG &= ~BIT0; // P1.0 IFG Flag cleared BSP_Init(); MRFI_Init(); // Init SPI com with CC2500 MRFI_SetRFPwr(2); // RF transmitting power (0 to 2) //TODO: THPE change transmitting power Task 6!!! mrfiRadioInterfaceWriteReg(CHANNR,tx_channel); // set channel number MRFI_WakeUp(); // wake up the radio MRFI_RxOn(); // turn into Rx mode initSerial(); // init Serial interface printf("\r\n\r\n!!! app start !!!\r\n\r\n"); __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled } void MRFI_RxCompleteISR_new() // in Components/mrfi/radios/family5/mrfi_radio.c { //printf("RX ISR "); mrfiPacket_t packetreceived; MRFI_Receive(&packetreceived); print_metrix(packetreceived); } void print_metrix(mrfiPacket_t packetreceived) { int16_t f9, rxMetrix,rssi,crc,lqi; f9 = packetreceived.frame[9]; MRFI_RxOn(); rxMetrix=(int16_t)MRFI_Rssi(); if(rssi<0) rssi=-(-rssi/256); else rssi/=256; rssi = rxMetrix; crc = (rxMetrix & 0x80)>>7; lqi = rxMetrix & 0x7f; if(1) printf("RX ISR: frame[9]=%i, rssi=%i, crc=%i, lqi=%i\n\r",f9,rssi,crc,lqi); else printf("%i\r\n",rssi); } #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { int i,k = 0; mrfiPacket_t packet; packet.frame[0]=0x10; packet.frame[5]=msg_ON; for(i=0; i<180; i++) { packet.frame[9]=i+1; while(MRFI_TX_RESULT_SUCCESS!=MRFI_Transmit(&packet, MRFI_TX_TYPE_FORCED)); for(k=0; k<10; k++) { __delay_cycles(DELAY_CYCLES); } printf("send %i \n\r",i+1); } for(i=180; i<200; i++) { packet.frame[9]=i+1; while(MRFI_TX_RESULT_SUCCESS!=MRFI_Transmit(&packet, MRFI_TX_TYPE_FORCED)); for(k=0; k<10; k++) { __delay_cycles(DELAY_CYCLES); printf("stop %i \n\r",i+1); } } printf("stop msg_ON\n\r"); P1IFG &= ~BIT0; // P1.0 IFG Flag cleared }