3541|1

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【求助】I2S中 _WrL3Data(0xf2,0);是什么意思? [复制链接]

本人比较小白 实在看不懂下面这段代码 希望大侠 能帮分析下~~~谢谢了~
代码如下:
        _WrL3Addr(0x14 + 0);         //DATA0 (000101xx+00)
        _WrL3Data(0xc2,0);         // 1100 0010: DATA0, Extended addr(010)
        _WrL3Data(0xf2,0);         // 111 111 01: DATA0, MS=9dB, Ch1=on Ch2=on
        _WrL3Data(0xc4,0);         // 1100 0010: DATA0, Extended addr(010)
        _WrL3Data(0xE0,0);         // 111 111 01: DATA0, MS=9dB, Ch1=on Ch2=on
        _WrL3Data(0xc5,0);         // 1100 0010: DATA0, Extended addr(010)
        _WrL3Data(0xE0,0);         // 111 111 01: DATA0, MS=9dB, Ch1=on Ch2=on       
        RETAILMSG(DBG_ON, (TEXT("-IIS InitCodec\r\n")));


函数定义如下:
void _WrL3Data(unsigned char data,int halt)
{
       
        volatile int i,j;

                if(halt)
                {
                  g_pIOPregs->GPGDAT  = g_pIOPregs->GPGDAT & ~(L3D | L3M | L3C) | L3C;   //L3C=H(while tstp, L3 interface halt condition)          
                  for(j=0;j<4;j++);                //tstp(L3) > 190ns
                }

                g_pIOPregs->GPGDAT  = g_pIOPregs->GPGDAT & ~(L3D | L3M | L3C) | (L3C | L3M);   //L3M=H(in data transfer mode)          
                for(j=0;j<4;j++);                //tsu(L3)D > 190ns

        //GPG[2:0]=L3C:L3D:L3M
                for(i=0;i<8;i++)
                {
                  if(data & 0x1)        //if data's LSB is 'H'
                  {
                                 g_pIOPregs->GPGDAT &= ~L3C;                //L3C=L
                                 g_pIOPregs->GPGDAT |= L3D;                        //L3D=H

                                 for(j=0;j<4;j++);                        //tcy(L3) > 500ns
                                 g_pIOPregs->GPGDAT |= (L3C | L3D);        //L3C=H,L3D=H
                                 for(j=0;j<4;j++);                         //tcy(L3) > 500ns
                  }
                  else                //If data's LSB is 'L'
                  {
                                 g_pIOPregs->GPGDAT &= ~L3C;        //L3C=L
                                 g_pIOPregs->GPGDAT &= ~L3D;        //L3D=L
                                 for(j=0;j<4;j++);                //tcy(L3) > 500ns
                                 g_pIOPregs->GPGDAT |= L3C;                //L3C=H
                                 g_pIOPregs->GPGDAT &= ~L3D;        //L3D=L
                                 for(j=0;j<4;j++);                //tcy(L3) > 500ns
                  }
                data >>= 1;                //For check next bit
                }

                g_pIOPregs->GPGDAT  = g_pIOPregs->GPGDAT & ~(L3D | L3M | L3C) | (L3C | L3M);        //L3M=H,L3C=H
}

最新回复

。。。没有人知道吗? 帮帮忙,,, _WrL3Data(0xf2,0); 这个函数没有人用过吗。。。  详情 回复 发表于 2009-3-16 11:23
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
。。。没有人知道吗? 帮帮忙,,,
_WrL3Data(0xf2,0); 这个函数没有人用过吗。。。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表