Exemple #1
0
int main(int argc, char ** argv) {
	int res;
	printf("Start rpiCC2500\n");

	TICC *cc = (TICC *) malloc(sizeof(TICC));

	res = CC_Init(cc, "/dev/spidev0.0", 25 /*GNO0-pin Not yet used*/);
	if (res < 0) {
		printf("Failed to init TICC.");
		return 1;
	}
	perror("SPI init");
	usleep(30000);
	TI_CC_SPIStrobe( cc->fd, TI_CCxxx0_SRES);
	printf("Wait for RF to be Ready\n");
	usleep(40);
	printf("RF ok\n");
		
	writeRFSettings(cc);
	printf("BurstReg\n");
	TI_CC_SPIWriteBurstReg(cc->fd, TI_CCxxx0_PATABLE, paTable, paTableLen);
	printf("Strobe\n");
	//TI_CC_SPIStrobe(cc->fd, TI_CCxxx0_SRX);           // Initialize CCxxxx in RX mode.
										// When a pkt is received, it will
										// signal on GDO0
	char rxBuffer[50];
	printf("entering LOOP\n");
	printf("Part No.: %d\n",TI_CC_SPIReadStatus(cc->fd, TI_CCxxx0_PARTNUM));
	printf("Version No.: %d\n",TI_CC_SPIReadStatus(cc->fd, TI_CCxxx0_VERSION));
	char len = 50;
	int j,i;
	for(j=0;j<10;j++){  // for now send every 500ms a message and check for received packages
		rxBuffer[0] =3;
		rxBuffer[1] =0x01;
		rxBuffer[2] =12;
		rxBuffer[3] =rxBuffer[1]^rxBuffer[2]^0x01;
		printf("Send Package\n");
		RFSendPacket(cc, rxBuffer, 4);
		usleep(500000);
		
		printf("Check for Package\n");
		while(RFReceivePacket(cc, rxBuffer, &len)){
				printf("Got A Package %d\n",len);
				for(i =0; i< len; i++){
						printf("%d ",rxBuffer[i]);
				}
				printf("\n");
				//Receiveddata are stored in rxBuffer
				//Put some intelligence here
				len = 50;
		}
		
	}

	printf("exiting LOOP\n");
	CC_dispose(cc);
	free(cc);

	return 0;
}
Exemple #2
0
FORCE_INLINE void GeneralInit(void) {
    wdt_enable(WDTO_2S);
    ACSR = 1<<ACD;  // Disable analog comparator
    // Shutdown all unneeded
    PRR = (1<<PRTWI)|(1<<PRSPI)|(1<<PRADC);

    MustSleep = false;
    // Setup timer
    TimerInit();

    // Light
    LED_DDR  |= (1<<RED_P)|(1<<GREEN_P)|(1<<BLUE_P);
    LED_PORT &= ~((1<<RED_P)|(1<<GREEN_P)|(1<<BLUE_P));
    LED_UF_DDR |=(1<<UF_P);
    LED_UF_PORT &=~(1<<UF_P);
    // Led power
  //  LED_PWR_PORT &= ~(1<<LED_PWR_P);    // Low if output, Hi-Z if input
   // LED_PWR_OFF();

    TCCR0A = (1<<WGM01)|(1<<WGM00);
    TCCR0B = (0<<WGM02)|(0<<CS02)|(0<<CS01)|(1<<CS00);
    TCCR2A = (1<<WGM21)|(1<<WGM20);
    TCCR2B = (0<<WGM22)|(0<<CS22)|(0<<CS21)|(1<<CS20);
    TimerResetDelay(&ELight.Timer);
    ELight.Indx = 0;
    SetTableColor();
    ELight.SavedColor = ELight.DesiredColor;
    SetDesiredColor(0, 0, 0,0);   // Initial fade
    ELight.UfIsOn = false;

    // Sensors
    SENS_DDR  &= ~((1<<SENS_DOWN)|(1<<SENS_UP)|(1<<SENS_UF_SWITCH));
    SENS_DDR  |= 1<<SENS_PWR;
    SENS_PORT &= ~((1<<SENS_DOWN)|(1<<SENS_UP)|(1<<SENS_UF_SWITCH)); // No pull-ups
   // SENS_PWR_OFF();
/*
    ESens.DownIsOn   = false;
    ESens.UpIsOn     = false;
    ESens.UfIsOn = false;
    ESens.BothIsOn   = false;
*/
    ESens.PollTime   = SENS_POLL_TIME;
    ESens.Step=SENS_STATE_START;
    TimerResetDelay (&ESens.Timer);

    // CC init
    CC_Init();
    CC_SetAddress(4);   // Never changes in CC itself
}
Exemple #3
0
FORCE_INLINE void GeneralInit(void){
    wdt_enable(WDTO_2S);
    ACSR = 1<<ACD;  // Disable analog comparator
    TimerInit();
    // LED init
    LED_DDR |= (1<<LED_P);
    // CC init
    TimerResetDelay(&CCSrv.Timer);
    CC.TX_Pkt.PacketID = 1;
    CC_Init();
    CCSrv.Pwr = HiPwr;
    CC_SetChannel(45);   // Set needed channel
    // Battery
    BatteryInit();
    sei();
}