导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[sean_lwx]c



No.67540
作者:sean_lwx
邮件:sean_lwx@sina.com.cn
ID:28320
登陆:4次
文章数:2篇
最后登陆IP:61.51.121.189
最后登陆:2006/12/31 8:52:11
注册:2004/11/29 18:07:44
财富:123
发帖时间:2004/11/29 18:14:49
发贴者IP:219.224.61.92
标题:sean_lwx:c
摘要:No.67540c 过程是这样:我通过电话发送号码,芯片解码号码并当数据准备好被读时,把INT0拉低,
引发一个中断,通知读取数据。我现在碰到的问题是:中断能正确触发,也即中断触发的
次数和我读出到的数据个数一致。但是我收到的数据大部分情况是会随机错一两个字节。
但也有全对的情况。我被这个问题困扰一周多了!老板催的急!数据收发端口时序如下:
MPI口,即DCLK、DIO、CS的时序关系及关于MPI的操作是:
1、   CPU向LE78D11写命令/数据
A)、片选拉低(CS)
B)、时钟拉低(DCLK)
C)、CPU送数据到DIO,高位在前(D7----D0)
D)、时钟拉高(DCLK)
E)、转到B),写下一位直到8位写完。
F)、时钟拉高、片选拉高。
2、CPU从LE78D11读数据
A)、片选拉低(CS)
B)、时钟拉低(DCLK)
C)、CPU读DIO上的数据,高位在前(D7----D0)
D)、时钟拉高(DCLK)
E)、转到B),读下一位直到8位读完。
F)、时钟拉高、片选拉高。
注:从时钟拉低到CPU读DIO上的数据的最短时间为50NS
我的收发数据程序如下:
void SendOneByte(uchar Number)
{
          register uchar  i;
          register uchar  NumPlace;     //用NumPlace来依次判断数据的每一位值;
          NumPlace=Number;
          CS=LOW;                                    //时钟管脚为低
         Delay(2);                                    //延时5us
          for( i=0; i  <8; i++ )
        {
             DCLK=LOW;                                   //时钟管脚为高
            Delay(2);                                 //延时5us
            if(0x80&NumPlace)
            {
                DIN=HIGH;             //在时钟为高时改变数据
                        
            }
            else
            {
                DIN=LOW;                //在时钟为 ......

>>返回讨论的主题


  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:2531毫秒 查询6次