📄 cc1100_mcu_z.c.bak
字号:
/******************************************************************************
文件名: CC1100_SPI_z.c
说 明: MCU操作CC1100的SPI口的硬件相关的函数。
单片机: C8051F310
******************************************************************************/
#include "CC1100_MCU_z.h"
#include <intrins.h>
#include "CC1100_z.h"
#include "CC1100_func.h"
/******************************************************************************
函数名称: void CC1100_Reset(void)
函数功能: 按照手册描述的方法复位CC1100,仅上电后一次性运行。
如果在工作时复位CC1100,可直接使用SRES命令.
入口参数: 无。
返回值: 无。
/*****************************************************************************/
void CC1100_Reset(void)
{
//(1) 翻转CSn信号。 CC1100_CSn = 1; //CSn = 1。
CC1100_SCLK = 1; //防止意外
CC1100_SI = 0; //防止意外
MCU_Wait_us( 10 ); //延迟10us。
CC1100_CSn = 0; //CSn = 0。
MCU_Wait_us( 30 ); //延迟30us。
CC1100_CSn = 1; //CSn = 1。
MCU_Wait_us( 45 ); //延迟45us。
CC1100_CSn = 0; //CSn = 0。
while ( CC1100_SO ); //等待SO=0,晶振稳定运行。
//(2) 发送SRES复位命令。
write_spi( CC1100_SRES ); //发送SRES命令。(硬件相关的函数)
//(3) 等待芯片完成内部复位。
while ( CC1100_SO ); //等待SO=0。
CC1100_CSn = 1; //CSn=1。完成。
CC1100_SCLK = 0;
}
/******************************************************************************
函数名称: void MCU_wait_us( unsigned char x )
函数功能: 延迟等待 x us(不精确)。
入口参数: x = 微秒数。
返回值: 无。
******************************************************************************/
void MCU_Wait_us( unsigned char x )
{
unsigned char i;
do
{
i=12;
while( --i );
}
while (--x);
}
/******************************************************************************
函数名称: unsigned char write_spi( unsigned char byte )
函数功能: MCU写一个字节的数据到CC1100。本函数假定SCn=0。
入口参数: byte = 写入字节。
返回值: CC1100的状态字节。
******************************************************************************/
unsigned char write_spi( unsigned char x )
{
unsigned char i;
for ( i=8; i>0; i--)
{
CC1100_SCLK = 0;
x += x;
CC1100_SI = CY;
CC1100_SCLK = 1;
x |= CC1100_SO;
}
CC1100_SCLK = 0;
return ( x & 0x70 );
}
/******************************************************************************
函数名称: unsigned char read_spi( unsigned char byte )
函数功能: MCU读CC1100一个字节的数据。本函数假定地址已发送。
入口参数: w无
返回值: 该地址的内容。
******************************************************************************/
unsigned char read_spi( void )
{
unsigned char i, x;
for ( i=8; i>0; i-- )
{
CC1100_SCLK = 1;
x <<= 1;
x |= CC1100_SO;
CC1100_SCLK = 0;
}
return ( x );
}
//----------- T2 中断服务程序 ----------------
void T2_ISR ( void ) interrupt 5 using 2
{
S_1ms = 1; //置1ms标志
TF2H = 0; //清中断源
}
/***************************************************************
函数名: void Deal_with_LED4( void )
功能说明: LED4闪烁。
***************************************************************/
void Deal_with_LED( void )
{
if ( !(--Blink_time) )
{
LED4 ^=1;
Blink_time = BLINK_OVER;
}
LED1 = S_FRX; //亮=正在接收。
LED2 = S_FTX; //亮=正在发送。
LED3 = CC1100_GDO0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -