音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

向高手請教幾個基礎(chǔ)問題!

作者:lsh998 欄目:ARM技術(shù)
向高手請教幾個基礎(chǔ)問題!
/***********************************************************
*文件名:BEEPCON.c
*功能:蜂鳴器控制。對蜂鳴器 B1 進行控制,采用軟件延時方法,
       使用 I/O 口直接控制,采用灌電流方式
/ ************************************************************


/**************************************************************
#include "config.h"

#define   BEEPCON     0x00000080  /*P0.7 引腳控制 B1,底電平蜂鳴*/
//***************************************************************

void delay()  //延時
{
   int i,j;
   for (i=0;i<10000;i++)
       { for (j=0;j<25;j++)
         {
         }
        }
}


int Main(void)  //控制蜂鳴器蜂鳴
{
   PINSEL0= 0x00000000;   //設(shè)置引腳連接 GPIO
   IOODIR = BEEPCON;      //設(shè)置 I/O 為輸出
   
   while(1)
   {
     IOOSET = BEEPCON;     //BEEPCON=1
     delay();
     IOOCLR = BEEPCON      //BEEPCON=0
    }
    
    return(0);
  }      
      
***********************************************************************************
上面的一段程序是 周立功 《 ARM 嵌入式系統(tǒng)實驗教程 (一)》抄下來的一段程序
有幾個問題向各位大俠請教:

問題1:
      #define   BEEPCON     0x00000080  /*P0.7 引腳控制 B1,底電平蜂鳴*/
是不是表示 BEEPCON 的物理地址為0x00000080 ?

它后面的解釋  /*P0.7 引腳控制 B1,底電平蜂鳴*/

那就是說明 #define   BEEPCON     0x00000080  只是給 P0.7 取了個別名   BEEPCON
各位大哥,是不是這樣?

如果真的是這樣的話,為什么不直接 對 P0.7 進行操作呢?

問題2:
     PINSEL0= 0x00000000;   //設(shè)置引腳連接 GPIO
    
     PINSEL0 沒有定義為什么這里能用呢?PINSEL0 是不是寄存器啊?
     為什么 PINSEL0= 0x00000000  就解釋為:設(shè)置引腳連接 GPIO ?
問題3:
     為什么 IOODIR = BEEPCON;    解釋為:設(shè)置 I/O 為輸出 ?
問題4:
     while(1)
   {
     IOOSET = BEEPCON;     //BEEPCON=1
     delay();
     IOOCLR = BEEPCON      //BEEPCON=0
    }
    這段程序是什么意思?
    IOOSET 和 IOOCLR  分別是什么東西?


謝謝!


* - 本貼最后修改時間:2005-9-9 15:45:13 修改者:lsh998

2樓: >>參與討論
lsh998
re
那位大哥幫我鼎鼎落!

3樓: >>參與討論
sd325
還是先學51吧,磨刀不付砍柴功
還是先學51吧,磨刀不付砍柴功

4樓: >>參與討論
puppyh
你要再仔細的閱讀芯片的數(shù)據(jù)手冊
問題1:
     #define BEEPCON 0x00000080  /*P0.7 引腳控制 B1,底電平蜂鳴*/
是不是表示 BEEPCON 的物理地址為0x00000080 ?
答:
     #define BEEPCON  0x00000080  不是給 P0.7取了個別名而是定義了給蜂鳴器鳴響的寄存器的位置,因為是第七腳(10000000B),所以為0x80。
----------------------------------------------------------------
問題2:
     PINSEL0= 0x00000000;   //設(shè)置引腳連接 GPIO
     PINSEL0 沒有定義為什么這里能用呢?PINSEL0 是不是寄存器。
     為什么 PINSEL0= 0x00000000  就解釋為:設(shè)置引腳連接 GPIO ?
答:
    PINSEL0 沒有定義為什么能用,我想是因為有了#include "config.h"
----------------------------------------------------------------
問題3:
     為什么 IOODIR = BEEPCON;    解釋為:設(shè)置 I/O 為輸出 ?
答:
    因為IOODIR是方向寄存器,為1表示該I/O口為輸出腳,為0表示為輸出腳。
------------------------------------------------------------------
問題4:
     while(1)
   {
     IOOSET = BEEPCON;     //BEEPCON=1
     delay();
     IOOCLR = BEEPCON      //BEEPCON=0
    }
    這段程序是什么意思?
    IOOSET 和 IOOCLR  分別是什么東西?
答:
    這段程序是讓蜂鳴器開啟,延時后,關(guān)閉,但是有錯誤,應(yīng)該再IOOCLR = BEEPCON; 后面再加一行延時。
IOOSET 和 IOOCLR表示什么,你必須仔細閱讀數(shù)據(jù)手冊。!
==================================
我個人覺得你沒有認認真真,仔仔細細閱讀數(shù)據(jù)手冊!!這樣下去你的ARM基礎(chǔ)不扎實。


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教:片內(nèi) flash 和片內(nèi) RAM 分別相當于單片機的什么呢?
關(guān)于EP9312的啟動代碼的問題
請問:什么是RD,RD工程師是做什么的?謝謝!
出現(xiàn)“Could not open specified device port ”的錯誤警告
急尋含有SD卡插槽封裝的protel99庫文件!
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號