⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 采用STC MCU(5410) + TI CC2500 做的无线对讲系统.2.4G 频段 有效距离15m.Keil uv 3下的源码
💻 C
字号:
#define		_MAIN_C_
#include"cc2500.h"
#include"cw6695.h"
#include"main.h"
#include"cc2500int.h"
#undef		_MAIN_C_

struct EventAttemper { 
	void (*Function)(void); 
	unsigned char Time; 
}; 
/******************************************************************
	.	Event Attemper Inition Here
******************************************************************/
void TiminSend(void);
void WeitingSYNCSend(void);

struct EventAttemper code OS[EVENTLENGTH]={{TiminSend,112},{WeitingSYNCSend,0x81}};


void IntInit(void)
{
	TMOD=0x01;//Timer 0 audio AD/DA interrupt 16 bit relaod 125us
	AUXR=0x00;//Timer 0 is devoded 12 FRQ
	TL0=0xA8;//FRQ = 33 mHz 
	TH0=0xFE;
//------------ Extern Int 1 Init ------------
	IT1=1;//following edge
	IE1=0;// 
//------------ Start All Interrupt ----------			
	IE=0x86;
	TR0=1;
}
/***************************************
	Inition STC 5410 SPI 	
SPI IO Define	:
	p1.7	----------- Out put
	p1.6 	----------- in put
	p1.5 	----------- out put
	
	P1M0		=	40H
	P1M1		=	A0H
	more define see the STC 2051 PDF (P.30)	
SPICTL Register :
	SPR0 , SPR1 == 00	high speed clock
	CPHA		=	1	clock data model
	CPOL		=	1	clock idle state
	MSTR		=	1	mast or slave model selsect
	DORD		=	0	MSB or LSB
	SPEN		=	1	enable SPI
	SSIG		=	1	register select mast or slave
SPISTAT Register :
	SPIF		=	1	Clear flag when received data or data send out seted
	WCOL		=	1	clear flag it been seted when wtite again in transmiting	
***************************************/
void SPI_init(void)
{
	P1M0=0x40;
	P1M1=0x00;
	
	SPICTL=0xDC;
	SPISTAT=0xC0;	
}
/****************************************************
	Attemper Time Inition
*****************************************************/
void AttemperTimeInit(void)
{
	unsigned char i;
	for(i=0;i<EVENTLENGTH;i++){
		EventTime[i]=OS[i].Time;
	}
}
/*****************************************************************
	.	Every 14ms Send Once ADPCM == 56 byte + 5 byte message
******************************************************************/
void TiminSend(void)
{
//	p3_1=0;
//	PCMTransmitSend-=56;// Every time send from the Last 56 bytes
	bTransmitReceive=1;	
	CC_Cmd_Write(TI_CCxx_STX);// Transmit Active	
	CC_FIFO_Single_Write(TransmitCommandID);//write 1 byte	
	CC_FIFO_Burst_Write();//write 61 byte
	TransmitCommandID++;					
}
/***********************************************************
	.	weit 1ms no SYNC Word send once again
***********************************************************/
void WeitingSYNCSend(void)
{
//	p3_1=0;	
//	PCMTransmitSend-=56;
//	CC_FIFO_Single_Write(TransmitCommandID-1);//write 1 byte	
//	CC_FIFO_Burst_Write();//write 61 byte
//	CC_Cmd_Write(TI_CCxx_STX);// Transmit Active
//	bTransmitReceive=1;	
}
/**********************************************************
***********************************************************/
void main(void)
{	
	unsigned char i;
//	AUXR=0;
	SPI_init();	
	AttemperTimeInit();
	InitCW6695();
	TI_CCxx_Reset();
	TI_CC_RegInit();				
	IntInit();
//	SPKPower=0;
	while(1){
		for(i=0;i<EVENTLENGTH;i++){
			if(!EventTime[i]){// Event time coming
				EventTime[i]=OS[i].Time;
				OS[i].Function();
			}// if(!EventTime[i])
		}// for	
	}// while(1)
}

















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -