娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

有輸出總會有輸入,今天測試一下按鍵的功能,第一節(jié)已經(jīng)說過了與GPIO端口相關(guān)的寄存器,這里不在重復(fù),想要從端口讀取數(shù)據(jù),首先把FIODIR這個寄存器設(shè)置為輸入,再從 FIOPIN寄存器讀取數(shù)據(jù)就可以了,這個寄存器具有讀寫功能。下面說一下這個實(shí)驗(yàn)的電路圖,如下所示:


圖1-1 Joystick按鍵連線圖


             

這次實(shí)驗(yàn)沒有涉及到外部中斷,都是做普通的IO輸入使用的,所以在這里外部中斷就做學(xué)習(xí)總結(jié)了。下面給出這次實(shí)驗(yàn)的主程序:

/*********************************************************************************

文件名稱:mian.c

功    能: 主要調(diào)度函數(shù)及應(yīng)用函數(shù)                                                                                          

編譯環(huán)境: MDKV4.12                                                   

時    鐘: 外部12Mhz                                                                                                                                        

---------------------------------------------------------------------------------

修改內(nèi)容:NULL

修改日期:XXXX年xx月xx日      xx時xx分

修改人員:xxx xxx xxx                                                                                                                                      

**********************************************************************************/

#include"main.h"

volatile unsigned long SysTickCnt;      /* 用于系統(tǒng)時鐘計(jì)數(shù) */

/********************************************************************************

* 函數(shù)名稱 :void SysTick_Handler (void)

* 函數(shù)功能 : 系統(tǒng)節(jié)拍定時器中斷函數(shù),每1ms計(jì)數(shù)一次

* 入口參數(shù) : 無

* 出口參數(shù) : 無

* 備    注 :無

*******************************************************************************/

void SysTick_Handler (void)

{         

  SysTickCnt++;

}

/********************************************************************************

* 函數(shù)名稱 :void Delay (unsigned long tick)

* 函數(shù)功能 : 毫秒級延時函數(shù)

* 入口參數(shù) : unsigned long tick -- 延時時長

* 出口參數(shù) : 無

* 備    注 :無

*******************************************************************************/

void DelayMs (unsigned long tick)

{     

  unsigned long systickcnt;

  systickcnt = SysTickCnt;

  while ((SysTickCnt - systickcnt) < tick);

}

/********************************************************************************

* 函數(shù)名稱 :void PortInit(void)

* 函數(shù)功能 : 端口初始化

* 入口參數(shù) : 無

* 出口參數(shù) : 無

* 備    注 :無

*******************************************************************************/

void PortInit(void)

{

   GPIO1->FIODIR = 0xB0000000;           /* LEDs on PORT1 defined as Output    */

   GPIO2->FIODIR = 0x0000007C;           /* LEDs on PORT2 defined as Output    */

   LedAllOff();                                                                                                /* 初始化時熄滅所有的燈 */

}

/********************************************************************************

* 函數(shù)名稱 :int main(void)

* 函數(shù)功能 : 主函數(shù)

* 入口參數(shù) : 無

* 出口參數(shù) : 無

* 備    注 :無

*******************************************************************************/

int main(void)

{

    unsigned char LedFlag = 1;  // 記錄LED狀態(tài)

               SystemInit();     /* 系統(tǒng)初始化,函數(shù)在system_LPC17xx.c文件夾中定義 */

               SysTick_Config(SystemFrequency/1000 - 1);   /* 配置時鐘中斷,每1ms中斷一次 */

                                                           /* 在core_cm3.h中定義*/

    PortInit();       /* 端口初始化 */

               while(1)

               {

                             if(!LedFlag)

                             {

                                           Led1On();  // 點(diǎn)亮LED     

                             }

                             else

                             {

                                           Led1Off(); // 熄滅LED         

                             }

                           

                   if(!KEY_VAL)

                             {

                                           DelayMs(10);

                                 while(!KEY_VAL);

                                           LedFlag ^=1;  // Led狀態(tài)改變一次         

                             }

                           

                             if(!KEY_EN)       // 此處是為了測試搖桿按鍵的功能是否正常

                             {

                                           DelayMs(10);

                                           while(!KEY_EN);

                                 Led8Neg();  // 點(diǎn)亮LED // Led狀態(tài)改變一次     

                             }

               }

}



工程中startup_LPC17XX.s是M3的啟動文件,啟動文件由匯編語言寫的,它的作用一般是下面這幾個:

1)堆和棧的初始化

2)向量表定義

3)地址重映射及中斷向量表的轉(zhuǎn)移

4)設(shè)置系統(tǒng)時鐘頻率

5)中斷寄存器的初始化

6)進(jìn)入C應(yīng)用程序


工程中main.c是我寫的應(yīng)用程序,也就是這次實(shí)驗(yàn)的程序,core_cm3.c與core_cm3.h主要是M3外圍驅(qū)動源代碼與頭文件,使用時一般不需要修改,直接調(diào)用就可以。system_LPC17xx.c與system_LPC17xx.h是關(guān)于系統(tǒng)的文件,里面主要提供了系統(tǒng)初始化函數(shù)SystemInit(),文件中默認(rèn)情況下定義的晶振的大小為12M,使用的是外部晶振,還使用了PLL0倍頻,關(guān)于倍頻的問題,以后慢慢再總結(jié)。芯片LPC1768的初始化主要包括時鐘配置,電源管理,功耗管理等。相比較而言,時鐘配置相對復(fù)雜,因?yàn)樗▋蓚€PLL倍頻電路,一個是主PLL0主要是為系統(tǒng)和USB提供時鐘,另一個是PLL1專門 為USB提供48M時鐘,但也可以不使用它們。由于時鐘配置比較靈活,所以相以設(shè)置這些參數(shù)也比較復(fù)雜,但是這些在系統(tǒng)文件中已有明確的定義,所以想要變動時只需修改系統(tǒng)文件中相應(yīng)的宏或函數(shù)即可。


下面簡要總結(jié)一下main()函數(shù),首先是系統(tǒng)初始化函數(shù)SystemInit(),上面說過它在system_LPC17xx.c這個源文件中,這個函數(shù)主要完成了對時鐘的配置,系統(tǒng)功耗PCONP,時鐘輸出,flash加速等系統(tǒng)資源配置。如果要進(jìn)行修改可以參考源文件的修改方法,雖然是英文注釋,但都非常簡單,有興趣的可以打開看看,不過一般情況下我們拿來直接用就好了不用修改的


函數(shù)SysTick_Config(SystemFrequency/1000 - 1) 是用來配置系統(tǒng)時鐘節(jié)拍的,它的原型在core_m3.c這個源文件中。實(shí)驗(yàn)程序中用的延時函數(shù)都是硬件延時,其實(shí)就是系統(tǒng)節(jié)拍定時器所產(chǎn)生的。使用硬件延時的原因是1、不占用軟件系統(tǒng)資源,2、比較精確。系統(tǒng)定時器配置很簡單,使用也很方便,專為系統(tǒng)軟件或系統(tǒng)管理軟件提供間隔中斷。系統(tǒng)節(jié)拍定時器的時鐘源可以是內(nèi)核時鐘也,可以是外部時鐘,外部時鐘P3.26腳引入,當(dāng)然想從這個引腳輸入時鐘,需要將這個引腳先配置成STCLK功能。系統(tǒng)節(jié)拍定時器是一個24位定時器,當(dāng)計(jì)數(shù)值達(dá)到0時產(chǎn)生中斷。系統(tǒng)節(jié)拍定時器的功能就是為下一次中斷提供前提供一個固定時間間隔。由于節(jié)拍定時器是24位的,所以使用時不能與其它定時器混為一談,一定要注意定時時長的限制,不能超過界限。

[1] [2]
關(guān)鍵字:Cortex-M3  LPC1768  按鍵實(shí)驗(yàn) 引用地址:Cortex-M3學(xué)習(xí)LPC1768 - 按鍵實(shí)驗(yàn)

上一篇:LPC824低功耗下pin配置調(diào)試程序
下一篇:S3C2440串口代碼_函數(shù)_初始化_發(fā)送Byte_發(fā)送string_Printf

推薦閱讀

一、移動機(jī)器人的機(jī)構(gòu)一般而言,移動機(jī)器人的移動機(jī)構(gòu)主要有輪式移動機(jī)構(gòu)、履帶式移動機(jī)構(gòu)及足式移動機(jī)構(gòu),此外還有步進(jìn)式移動機(jī)構(gòu)、蠕動式移動機(jī)構(gòu)、蛇行式移動機(jī)構(gòu)和混合式移動機(jī)構(gòu),以適應(yīng)不同的工作環(huán)境和場合。一般室內(nèi)移動機(jī)器人通常采用輪式移動機(jī)構(gòu),室外移動機(jī)器人為了適應(yīng)野外環(huán)境的需要,多采用履帶式移動機(jī)構(gòu)。一些仿生機(jī)器人,通常模仿某種生...
昨日華為MatePad新品發(fā)布會結(jié)束之后,華為消費(fèi)者業(yè)務(wù)CEO余承東在采訪環(huán)節(jié)透露到,華為明年也將推出包耳式的頭戴產(chǎn)品。他說到:“可能到明年了,因?yàn)槲覀兿敫鷦e人做不一樣的,領(lǐng)先技術(shù)的東西。”對此外界猜測余承東所謂的“領(lǐng)先技術(shù)”可能著眼于佩戴舒適、藍(lán)牙芯片性能、音質(zhì)體驗(yàn)以及續(xù)航時間等方面。余承東進(jìn)一步表示:“像我們的FreeBuds3開放式耳機(jī),無...
圖中所示是用SF357運(yùn)放組成的直流毫伏表,它可以彌補(bǔ)一般萬用表或普通表頭測量直流毫伏信號的不足.DC毫伏表采用了運(yùn)放的反相放大工作原理,即V0=-VIN.R2/RA,當(dāng)VIN=1V時,取RA1=R2=1M,則VO0=-1.如
相信很多三星老用戶都知道,三星通常會在上半年發(fā)布Galaxy S系列,而下半年則會推出Galaxy Note系列,兩款旗艦手機(jī)交替發(fā)布的節(jié)奏已經(jīng)保持了10年之久。不過自從2020年下半年三星推出Note 20系列后,便有爆料稱Note系列將全面停產(chǎn)。今日,據(jù)媒體ETnews報道,三星Galaxy Note系列將正式退出歷史舞臺,年底停產(chǎn)。同時,三星還確認(rèn)Note系列被排除在2022年度...

史海拾趣

問答坊 | AI 解惑

PWM開關(guān)變換器的符號分析

PWM開關(guān)變換器的符號分析…

查看全部問答∨

MFC背景繪制

   最近在弄透明static text控件,不是一般的那種,而是在對話框有背景圖的情況下透明。基本上已經(jīng)實(shí)現(xiàn)了,但是第一次顯示的時候會有點(diǎn)閃,原因就是對話框繪制其背景圖時,會空出子控件所在的區(qū)域,這樣當(dāng)子控件再繪制自己的背景時,就會 ...…

查看全部問答∨

初學(xué)者:跑馬燈+中斷出錯了怎么會事啊

我用的是AT89S52的片,把下邊的程序燒進(jìn)去后,只要進(jìn)了中斷就出不來了是怎么會事啊,出不來還好,燈還在哪瞎閃,希望大家?guī)蛶臀野? #include <reg52.h> /*         本源程序有三種跑馬燈的方式:       & ...…

查看全部問答∨

eboot 燒寫問題

FLASH換成spansion S29GL了,可jtag無法寫進(jìn)去。好像不支持這片子。。用flash燒寫器太麻煩。。 我應(yīng)該怎么辦?哪位高人有這片子的jtag燒寫軟件? 謝謝!· …

查看全部問答∨

請教關(guān)于wince IE問題

需要寫一個IE瀏覽器 請問怎么能檢測到當(dāng)前網(wǎng)絡(luò)狀態(tài)(應(yīng)該是IE的狀態(tài))是否連上或者斷開, 通過檢測無線網(wǎng)卡的方式經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)不行,因?yàn)闊o線網(wǎng)卡的驅(qū)動好象也不是時時檢測這個連接狀態(tài)的,我把AP斷開,無線網(wǎng)卡的信號還很強(qiáng), 現(xiàn)在想通過判斷IE ...…

查看全部問答∨

求:Windows Mobile & Pocket PC 上GPS串口讀經(jīng)緯度.NET的Demo源碼

求:Windows Mobile & Pocket PC 上GPS串口讀經(jīng)緯度.NET的Demo源碼.多謝了. msn: kingmax5421@msn.com…

查看全部問答∨

收到eeworld 寄來的8982了。happying....

才順風(fēng)打來電話,有快遞。。那叫一個激動啊。。。知道是eeworld里的8962來了。立即飛奔到校門口,成都今年很冷。我硬是這跑的滿頭大汗。。。終于拿到板子。。開機(jī)就有一個小游戲。。。太有意思了。。。感謝eeworld。。。。 激動ing..happying..準(zhǔn)備 ...…

查看全部問答∨

后仿真信號名中的反斜杠‘\’

后仿真信號名中的反斜杠‘\\’,后仿真生成了sdf文件和.v文件,加上testbench,進(jìn)行仿真。很多信號前面都有\(zhòng)\,比如wire \\data之類的,我想在testbench中display任務(wù)中打印下層的信號,功能仿真時,直接用點(diǎn)".",就能調(diào)用下層信號,可是現(xiàn)在前面有 ...…

查看全部問答∨

希望ST增強(qiáng)HSITRIM的功能。

USB 12Mbps的頻率誤差允許0.25%。而stm32f的HSI允許以40kHz左右的步長調(diào)節(jié)(改變HSITRIM的值)。40kHz/8MHz=0.5%,可惜呀。如果能以10kHz的步長調(diào)節(jié)HSI頻率,同時保證HSI頻率一定的穩(wěn)定度,就可以用32768單晶振實(shí)現(xiàn)USB了!!!希望ST改進(jìn) ...…

查看全部問答∨

關(guān)于中斷幾個小問題

這是一個用中斷和計(jì)時器控制一個led燈循環(huán)閃爍的程序 #include<reg52.h> sbit led1=P1^0; void main() {EA=1; ET0=1; TMOD=0x01; TH0=(65536-46083)/256; TH1=(65536-46083)%256; TR0=1; while(1); } void time() interrupt ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 霍州市| 县级市| 鸡泽县| 台北市| 丹阳市| 吐鲁番市| 平山县| 海淀区| 南和县| 百色市| 桐梓县| 类乌齐县| 盐池县| 内江市| 公主岭市| 武山县| 天长市| 惠水县| 琼结县| 专栏| 永泰县| 定陶县| 马公市| 临江市| 池州市| 潼南县| 平凉市| 宜川县| 华亭县| 花垣县| 讷河市| 林周县| 田林县| 屏南县| 象山县| 岢岚县| 金沙县| 巩义市| 北宁市| 柞水县| 缙云县|