色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

          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ò)誤的程序也貼出來,以供參考學(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í)間有沒有延時(shí)的問題,由于DA轉(zhuǎn)換和單片機(jī)部分用了光藕隔離所以才會(huì)出現(xiàn)這種需要延時(shí)的情況,如果沒有隔離的話,完全可以不用延時(shí),因?yàn)?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/MAX5307">MAX5307的最高可以達(dá)到15MHZ的轉(zhuǎn)換和數(shù)字傳輸頻率。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉