#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#define set(x) PORTD|=(1<<x)
#define clr(x) PORTD&=~(1<<x)
#define _nop_() NOP()
#define set_csn() PORTB|=(1<<4)
#define clr_csn() PORTB&=~(1<<4)
uchar pwr=6,trxce=5,txen=4;
uchar read_config[4]={0xff,0xff,0xff,0xff};
void Delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void IOInit()
{
DDRA=0XFF;
//DDRB=0XFF;
DDRC=0XFF;
DDRD=0XFF;
PORTA=0xff;
}
void SpiInit()
{
uchar temp;
DDRB|=0XB0;
PORTB&=0X5F;
/*SPSR=0X00;
temp=SPSR;
temp=SPDR;*/
SPCR=0X51;
}
void SpiWrite(uchar datas)
{
SPDR=datas;
while(!(SPSR&(0X80)));
//datas=SPDR;
}
uchar SpiRead()
{
//PORTC=0X00;
//Delay(1000);
SPDR=0X00;
while(!(SPSR&(0x80)));
//PORTC=0XFF;
return SPDR;
}
uchar SpiWriteRead(uchar datas)
{
SPDR=datas;
while(!(SPSR&(0x80)));
return SPDR;
}
unsigned char RFConf[11]={
0x00, //?????邦芍?//
0x6C, //CH_NO,?????米???迆433.2MHZ
0x0C, //那?3?1|?那?a10db,2???﹞⊿㏒??迆米??a?y3㏒?㏒那?
0x44, //米??﹞?赤?豕谷豕??㏒??a4℅??迆
0x04,0x04, //?車那?﹞⊿?赤車DD∫那y?Y3∟?豕?a3℅??迆
0xCC,0xCC,0xCC,0xCC, //?車那?米??﹞
0x58, //CRC3?D赤㏒?16??CRCD㏒?谷㏒?赤a2?那㊣?車D?o?那1?邦㏒?16M?∫??//UP_CLK那?3?1MHZ?米?那
};
void NrfDelay(uint x)
{
uint i;
for(i=0;i<x;i++){
_nop_();
}
}
void NrfInit(void)
{
uchar i;
set(pwr);
clr(trxce);
clr(txen);
set_csn();
_nop_(); _nop_();
//CSN=0; //??豕?SIP?㏒那?
clr_csn();
for(i=0;i<11;i++)
{
SpiWrite(RFConf[i]); //谷豕????????∩??‾
}
// CSN=1; //1?㊣?SPI㏒???豕??車那?℅∩足?
set_csn();
set(pwr);
//TRX_CE=1;
clr(txen);
NrfDelay(1000);
}
void TestConfig()
{
uchar j;
set(pwr);
set(txen);
clr(trxce);
//CSN=1;
set_csn();
_nop_();_nop_();
//CSN=0;
clr_csn();
SpiWriteRead(0x22); //D∩﹞⊿?赤米??﹞,o車???迆4℅??迆米??﹞//
SpiWriteRead(0xCC);
SpiWriteRead(0xCC);
SpiWriteRead(0xCC);
SpiWriteRead(0xCC);
// CSN=1;
set_csn();
_nop_();_nop_();
//CSN=0;
clr_csn();
SpiWrite(0x20); //D∩﹞⊿?赤那y?Y?邦芍?,o車???迆豕y℅??迆那y?Y//
SpiWrite(0x51);
SpiWrite(0x52);
SpiWrite(0x53);
SpiWrite(0x54);
//CSN=1;
//set_csn();
_nop_();_nop_();
//CSN=1;
set_csn();
_nop_();_nop_();
Delay(100);
//CSN=0;
clr_csn();
Delay(1);
SpiWrite(0x21);
for(j=0;j<4;j++)
{
read_config[j]=SpiWriteRead(0x00);
//SerialSend(read_config[j]);
}
set_csn();
//CSN=1;
}
void main()
{
uchar i;
IOInit();
SpiInit();
//NrfInit();
TestConfig();
while(1)
{
for(i=0;i<4;i++)
{
PORTA=read_config[i];
Delay(10000);
}
}
}
AVR.rar_AVR 模拟从机_SPI 单片机_avr_twi avr_单片机 模拟PWM
版权申诉
171 浏览量
2022-09-14
16:24:23
上传
评论
收藏 6KB RAR 举报
APei
- 粉丝: 63
- 资源: 1万+
最新资源
- 沈丘盛世龙门图纸符合规范化
- HM3400-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于python+streamlit联邦学习进行高校学生成绩预测研究python源码+项目说明+模型+数据.zip
- HM3400D-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HM3400B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- spring-boot示例
- 搜集火星资源.py
- JAR应用启动停止脚本化解决方案.zip
- 配合eclipse svn插件subclipse-4.3.4版本的javahl
- Bash脚本教程:如何优雅地停止JAR服务.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈