找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

一个3线通信协议的问题

[复制链接]
admin 发表于 2012-9-2 20:54:00 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
最近在写一个声音芯片的协议(si730),自己写了一个,不能正常运行,我觉得是时序出了问题,希望和大家探讨一下
我写的协议程序是:

void write_addr_r_w( unchar addrh_rw,unchar addrl)
{//写寄存器地址和读写位
unchar i=4;
unchar h;
h=addrh_rw;
P0CONL = 0xaa; //P0.0-P0.3output mode/powerflag/SEN/SCLK/SDIO
P0PUR = 0x4e; //P0.1/2/3/6Enable pull-up/ P0.0/4/5/7Disable pull-up
set_sen; __NOP();
set_sclk;__NOP();
clr_sclk ;__NOP();
clr_sen ;__NOP();

while(i--)//写A7-A5和R/W位 高4位
{ clr_sclk ;__NOP();
if(h&0x80)set_sdio;
else clr_sdio; __NOP();

set_sclk;__NOP();
h<<=1;__NOP();
}
//addrl=addrl&0x1f;
h=(addrl<<=3);//获取低五位
i=5;
while(i--)//写A4-A0位
{clr_sclk ;__NOP();
if(h&0x80)set_sdio;
else clr_sdio; __NOP();

set_sclk;__NOP();
h<<=1;__NOP();
}
//clr_sclk ;__NOP();
}

void write_data(unchar data_h,unchar data_l)
{//写两个字节
unchar h;
unchar i=8;
h=data_h;
while(i--)//写D15-D0
{ clr_sclk ;__NOP();
if(h&0x80)set_sdio;
else clr_sdio; __NOP();

set_sclk;__NOP();
h<<=1;__NOP();
}
i=8;
h=data_l;
while(i--)//写D15-D0
{ clr_sclk ;__NOP();
if(h&0x80)set_sdio;
else clr_sdio; __NOP();

set_sclk;__NOP();
h<<=1;__NOP();
}

//clr_sclk ;__NOP();
set_sen; __NOP();
set_sclk ;__NOP();
clr_sclk ;__NOP();
}

void read_data(void)
{
//unit out;
unchar i;
P0CONL = 0x2a;//设为输入
set_sclk;__NOP();//a delay of one-half SCLK cycle for bus turnaround
for(i=0;i<8;i++)
{
clr_sclk ;__NOP();
set_sclk ;__NOP();
if(test_sdio)set_bit(out1,bit0); //=1?
else clr_bit(out1,bit0);//=0?
if(i<7) out1<<=1;//下一位
}

for(i=0;i<8;i++)
{
clr_sclk ;__NOP();
set_sclk ;__NOP();
if(test_sdio)set_bit(out2,bit0); //=1?
else clr_bit(out2,bit0);//=0?
if(i<7) out2<<=1;//下一位
}

//clr_sclk ;__NOP();
set_sen; __NOP();
set_sclk ;__NOP();
clr_sclk ;__NOP();
// return out;
}


5_61416_2e8b9cd91948f5a.png
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 22:58 , Processed in 0.063140 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表