<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MAX5307程序調(diào)試中遇到的時(shí)鐘問(wèn)題

          MAX5307程序調(diào)試中遇到的時(shí)鐘問(wèn)題

          作者: 時(shí)間:2012-10-27 來(lái)源:網(wǎng)絡(luò) 收藏

          調(diào)試了好久終于調(diào)試出來(lái)了啊,原來(lái)罪魁禍?zhǔn)拙谷皇且粋€(gè)時(shí)鐘的問(wèn)題:

          DAC0(uchar t)
          { uchar i;
          uint x,y;//控制轉(zhuǎn)換的命令字節(jié)
          uint p_up;
          p_up=0xffff;
          EN138=1;
          A138=0;
          B138=0;
          //DA_CLK=1;//由于在下降沿輸出,故先拉高
          delay(5);
          for(i=0;i16;i++)
          {
          DA_DIN=(bit)(p_up0x8000);//取最高位傳送
          DA_CLK=1;
          delay(10);
          DA_CLK=0;
          delay(10);
          p_up=1;
          }
          EN138=1;//將5307的CS端拉高,準(zhǔn)備下次的數(shù)據(jù)輸入.
          A138=1;
          B138=1;
          delay(10);
          //********************************************以上將全部DA使能輸出
          EN138=1;
          A138=0;
          B138=0;
          //DA_CLK=1;//由于在下降沿輸出,故先拉高
          delay(5);
          for(i=0;i16;i++)
          {
          DA_DIN=(bit)(dandc0x8000);//取最高位傳送
          DA_CLK=1;
          delay(10);
          DA_CLK=0;
          delay(10);
          dandc=1;
          }
          EN138=1;//將5307的CS端拉高,準(zhǔn)備下次的數(shù)據(jù)輸入.
          A138=1;
          B138=1;
          delay(5);

          //**********************以上部分僅僅完成了數(shù)據(jù)的傳送
          x=0x0010;
          x=xt;//用1選中要進(jìn)行轉(zhuǎn)換的通道.
          y=0xe000;//啟動(dòng)轉(zhuǎn)換的命令
          y=y|x;
          EN138=1;
          A138=0;
          B138=0;
          //DA_CLK=1;//由于在下降沿輸出,故先拉高
          delay(10);
          for(i=0;i16;i++)
          {
          DA_DIN=(bit)(y0x8000);//取最高位傳送
          DA_CLK=1;
          delay(10);
          DA_CLK=0;
          delay(10);
          y=1;
          }
          delay(10);
          EN138=1;
          A138=1;
          B138=1;
          } 以上為正確的程序,嘔心瀝血啊。有看的就要回貼啊,哪怕是罵兩句。

          下面把錯(cuò)誤的程序也貼出來(lái),以供參考學(xué)習(xí):

          DAC0(uchar t)
          { uchar i;
          uint x,y;//控制轉(zhuǎn)換的命令字節(jié)
          uint p_up;
          p_up=0xffff;
          EN138=1;
          A138=0;
          B138=0;
          DA_CLK=1;//由于在下降沿輸出,故先拉高
          delay(5);
          for(i=0;i16;i++)
          {
          DA_DIN=(bit)(p_up0x8000);//取最高位傳送
          DA_CLK=0;
          delay(10);
          DA_CLK=1;
          delay(10);
          p_up=1;
          }
          EN138=1;//將5307的CS端拉高,準(zhǔn)備下次的數(shù)據(jù)輸入.
          A138=1;
          B138=1;
          delay(10);
          //********************************************以上將全部DA使能輸出
          EN138=1;
          A138=0;
          B138=0;
          DA_CLK=1;//由于在下降沿輸出,故先拉高
          delay(5);
          for(i=0;i16;i++)
          {
          DA_DIN=(bit)(dandc0x8000);//取最高位傳送
          DA_CLK=0;
          delay(10);
          DA_CLK=1;
          delay(10);
          dandc=1;
          }
          EN138=1;//將5307的CS端拉高,準(zhǔn)備下次的數(shù)據(jù)輸入.
          A138=1;
          B138=1;
          delay(5);

          //**********************以上部分僅僅完成了數(shù)據(jù)的傳送
          x=0x0010;
          x=xt;//用1選中要進(jìn)行轉(zhuǎn)換的通道.
          y=0xe000;//啟動(dòng)轉(zhuǎn)換的命令
          y=y|x;
          EN138=1;
          A138=0;
          B138=0;
          DA_CLK=1;//由于在下降沿輸出,故先拉高
          delay(10);
          for(i=0;i16;i++)
          {
          DA_DIN=(bit)(y0x8000);//取最高位傳送
          DA_CLK=0;
          delay(10);
          DA_CLK=1;
          delay(10);
          y=1;
          }
          delay(10);
          EN138=1;
          A138=1;
          B138=1;
          }

          兩個(gè)程序中綠色的部分為不一樣的地方,其實(shí)也就是時(shí)鐘的下降沿的時(shí)間有沒(méi)有延時(shí)的問(wèn)題,由于DA轉(zhuǎn)換和單片機(jī)部分用了光藕隔離所以才會(huì)出現(xiàn)這種需要延時(shí)的情況,如果沒(méi)有隔離的話,完全可以不用延時(shí),因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/MAX5307">MAX5307的最高可以達(dá)到15MHZ的轉(zhuǎn)換和數(shù)字傳輸頻率。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();