コード例 #1
0
ファイル: rf.c プロジェクト: HerrSchrader/McBetty
void cc1100IRQ (void) {
		
	if (cc1100_read1(0x3B | READ | BURST) > 0) {
		RF_getfifo(RFbuf);
		cc1100_strobe(SIDLE);
		cc1100_strobe(SFRX);
				
		struct cc1100frame_ *RXframe;
		RXframe = (struct cc1100frame_ *)&RFbuf[0];
		
		if ((RXframe->len == 1) && ((RXframe->destAddr == cc1100Addr)  || (RXframe->destAddr == 0x00))) {
			switch_WOR_RX();
		}
		
		if(RFstatus & WORenabled)
			cc1100_strobe(SWOR);
		else
			cc1100_strobe(SRX);
			
		if (RXframe->len > 3) {
			setCBIntervall(WORrx_cb,WORrx_time);
			switch ( RXframe->packetType) {
				case 0x01:
					draw_block(0,50,128,10,3,DRAW_ERASE);
					draw_string(0, 50, (char*)&RFbuf[headerLen], 3, DRAW_PUT);
				break;
				case 0x02:
					if (RXframe->data[0] == 0x01) {
						RXframe->destAddr = RXframe->srcAddr;
						RXframe->srcAddr = cc1100Addr;
						RXframe->data[0] = 0x02;
						RXframe->len = 0x04;
						switch_to_idle();
						RF_send(RFbuf);
					}
					else if (RFbuf[headerLen] == 0x02) {
						RFstatus |= Received;
					}
				break;
				case 0x03:
					if ((RXframe->data[0] == 0x01) && (timeInfo & time_accurate)) {
						send_time(RXframe->srcAddr);
					}
					else if (RFbuf[headerLen] == 0x02) {
						memcpy((unsigned char *)&time,(unsigned char *)&RXframe->data[1],3);
						memcpy((unsigned char *)&date,(unsigned char *)&RXframe->data[4],4);
						timeInfo |=0x02;
						VICSoftInt = INT_EINT2;
					}
			}
		}
	}
	
	waitTX();
	EXTINT = 0x01;
}
コード例 #2
0
ファイル: main.c プロジェクト: elmo2k3/McBetty
void ask_for_time(unsigned char dest) {
	unsigned char xmit[5];
	RF_sendWOR(dest);
	xmit[0] = 4;
	xmit[1] = dest;
	xmit[2] = cc1100Addr;
	xmit[3] = 3;
	xmit[4] = 1;
	switch_WOR_RX();
	RF_send(xmit);
}
コード例 #3
0
ファイル: mpxlRF.c プロジェクト: thinkJD/MoodPxl
void mpxl_send(unsigned char *buf, unsigned char length) {
	unsigned char sendbuffer[20];
	sendbuffer[0] = length + 2;	//Länge der Daten + Heeader
	sendbuffer[1] = 0x01;		//Adresse
	sendbuffer[2] = 0xFF; //sendbuffer[0]^sendbuffer[1]^0xFF;	//Checksumme
	
	int i;
	for (i=0;i<length;i++) 
	{
		sendbuffer[i+3] = buf[i];
	}
	
	RF_send(sendbuffer, sendbuffer[0]+1);
}