有輸出總會有輸入,今天測試一下按鍵的功能,第一節(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位的,所以使用時不能與其它定時器混為一談,一定要注意定時時長的限制,不能超過界限。
上一篇:LPC824低功耗下pin配置調(diào)試程序
下一篇:S3C2440串口代碼_函數(shù)_初始化_發(fā)送Byte_發(fā)送string_Printf
推薦閱讀
史海拾趣
機(jī)頂盒,全稱為數(shù)字視頻變換盒,是連接電視機(jī)與外部信號源的關(guān)鍵設(shè)備,其專業(yè)性與科普性兼具。從廣義上講,機(jī)頂盒泛指一切與電視機(jī)連接的網(wǎng)絡(luò)終端設(shè)備,能夠接收并轉(zhuǎn)換多種信號源,包括有線電纜、衛(wèi)星天線、寬帶網(wǎng)絡(luò)及地面廣播等,為觀眾提供豐富多樣的視聽體驗(yàn)。
在數(shù)字電視時代,機(jī)頂盒的核心功能在于實(shí)現(xiàn)數(shù)模轉(zhuǎn)換,即將接收到的數(shù)字信號轉(zhuǎn)換為電視機(jī)可識別的模擬信號,從而使用戶能在模擬電視機(jī)上觀看高清甚至超高清的數(shù)字電視節(jié)目。此外,機(jī)頂盒還具備強(qiáng)大的增值服務(wù)功能,如提供電子節(jié)目指南、因特網(wǎng)網(wǎng)頁瀏覽、在線購物、視頻點(diǎn)播等,使電視機(jī)從單向接收信息的設(shè)備轉(zhuǎn)變?yōu)榛拥闹悄芙K端。
隨著技術(shù)的不斷進(jìn)步,機(jī)頂盒正朝著高清化、智能化方向發(fā)展。高清、超高清技術(shù)的廣泛應(yīng)用,使得機(jī)頂盒能夠呈現(xiàn)更為細(xì)膩的畫面和震撼的音效。同時,智能化技術(shù)的融入,如語音助手、智能推薦等功能的實(shí)現(xiàn),進(jìn)一步提升了用戶的使用體驗(yàn)。未來,隨著5G、虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)等技術(shù)的不斷發(fā)展,機(jī)頂盒的應(yīng)用場景將更加廣泛,為用戶帶來更為沉浸式和互動式的觀影體驗(yàn)。
綜上所述,機(jī)頂盒作為連接電視與外部世界的橋梁,不僅豐富了人們的視聽生活,更推動了電視產(chǎn)業(yè)的數(shù)字化轉(zhuǎn)型與發(fā)展。
隨著技術(shù)的不斷進(jìn)步和產(chǎn)品的不斷創(chuàng)新,西鐵城公司開始積極拓展全球市場。公司的產(chǎn)品以其高品質(zhì)、精確度和創(chuàng)新技術(shù)而聞名,逐漸贏得了全球消費(fèi)者的青睞。同時,公司也積極參與國際性的鐘表展會和活動,通過展示最新產(chǎn)品和技術(shù)成果,進(jìn)一步提升品牌知名度和影響力。這一系列的舉措使得西鐵城在全球市場上的地位日益穩(wěn)固。
隨著技術(shù)創(chuàng)新的成功,Diplohmatic A/S公司開始尋求國際市場的拓展。公司派遣了一支由經(jīng)驗(yàn)豐富的銷售和技術(shù)人員組成的團(tuán)隊(duì),前往歐洲和亞洲的主要市場進(jìn)行考察和洽談。通過深入了解當(dāng)?shù)厥袌鲂枨蠛透偁帒B(tài)勢,公司制定了一系列有針對性的市場策略,并與多家國際知名企業(yè)建立了合作關(guān)系。這些合作不僅為公司帶來了更多的訂單,也提升了其品牌在國際市場的知名度。
近年來,Diodes Incorporated的財務(wù)表現(xiàn)穩(wěn)步提升。根據(jù)公司公布的財報數(shù)據(jù)顯示,公司歸母凈利潤持續(xù)增長,營業(yè)收入也保持著穩(wěn)定的增長態(tài)勢。這一成績的取得,得益于公司對產(chǎn)品質(zhì)量的嚴(yán)格把控、對市場需求的精準(zhǔn)把握以及對新技術(shù)的持續(xù)投入。同時,公司還通過優(yōu)化生產(chǎn)流程、降低生產(chǎn)成本等措施,進(jìn)一步提升了盈利能力。
ELESTA GmbH的前身可以追溯到1952年ELESTA Elektrotechnik AG的成立。在成立初期,該公司就開始在電子領(lǐng)域進(jìn)行一系列的創(chuàng)新和研發(fā)。到了1996年,ELESTA已經(jīng)成功開發(fā)出光學(xué)傳感器、測量和控制系統(tǒng)以及繼電器等關(guān)鍵產(chǎn)品,這些產(chǎn)品奠定了公司在電子行業(yè)中的堅(jiān)實(shí)基礎(chǔ)。
在電子行業(yè)的早期,Advanced Fibreoptic Engineering Ltd(以下簡稱AFE公司)還是一個名不見經(jīng)傳的小企業(yè)。然而,隨著技術(shù)的不斷進(jìn)步,AFE公司憑借其在光纖技術(shù)領(lǐng)域的深厚積累,成功研發(fā)出了一種具有劃時代意義的新型光纖材料。這種材料不僅傳輸速度快,而且損耗極低,極大地提高了數(shù)據(jù)傳輸?shù)男屎唾|(zhì)量。這一技術(shù)突破迅速為AFE公司贏得了市場認(rèn)可,公司的訂單量激增,業(yè)績逐年攀升。
隨著技術(shù)的推廣和應(yīng)用,AFE公司的光纖產(chǎn)品逐漸在通信、醫(yī)療、工業(yè)等多個領(lǐng)域得到廣泛應(yīng)用。公司不僅在國內(nèi)市場占據(jù)了一席之地,還積極拓展海外市場,與國際知名企業(yè)建立了穩(wěn)定的合作關(guān)系。憑借卓越的產(chǎn)品性能和良好的市場口碑,AFE公司逐漸在電子行業(yè)中嶄露頭角,成為了光纖技術(shù)領(lǐng)域的佼佼者。
以上是第一個故事的示例,若您想要探索更多關(guān)于AFE公司的發(fā)展故事,請輸入繼續(xù)。
(注:由于我無法實(shí)時獲取具體公司的實(shí)際發(fā)展故事,以上故事為虛構(gòu)內(nèi)容,僅用于展示故事編寫風(fēng)格和結(jié)構(gòu)。如果您需要真實(shí)、具體的故事,請?zhí)峁└嚓P(guān)于AFE公司的信息,以便我能為您編寫更貼近實(shí)際的內(nèi)容。)
我用的是AT89S52的片,把下邊的程序燒進(jìn)去后,只要進(jìn)了中斷就出不來了是怎么會事啊,出不來還好,燈還在哪瞎閃,希望大家?guī)蛶臀野? #include <reg52.h> /* 本源程序有三種跑馬燈的方式: & ...… 查看全部問答∨ |
FLASH換成spansion S29GL了,可jtag無法寫進(jìn)去。好像不支持這片子。。用flash燒寫器太麻煩。。 我應(yīng)該怎么辦?哪位高人有這片子的jtag燒寫軟件? 謝謝!· … 查看全部問答∨ |
需要寫一個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)在前面有 ...… 查看全部問答∨ |
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) ...… 查看全部問答∨ |
這是一個用中斷和計(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ā)板 精華推薦
- 基于GPS自動授時的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 英特爾發(fā)布全新GPU,AI和工作站迎來新選擇
- 重新思考數(shù)據(jù)中心架構(gòu),推進(jìn)AI的規(guī)模化落地
- Samtec科普 | 一文入門射頻連接器
- 垂直農(nóng)業(yè)的挑戰(zhàn) | Samtec新型農(nóng)業(yè)漫談系列一
- 比克電池亮相CIBF 2025,全品類布局構(gòu)建發(fā)展“芯”引擎
- 欣旺達(dá)閃耀CIBF 2025:以閃充/固態(tài)電池/逸風(fēng)電池等五大技術(shù)矩陣,領(lǐng)航全球能源革命
- 全新智己L6要做「下一代產(chǎn)品」
- 2025《國產(chǎn)車規(guī)芯片可靠性分級目錄》全新發(fā)布,電子版對整車和零部件企業(yè)免費(fèi)開放
- 寧德時代推重卡換電標(biāo)準(zhǔn),計(jì)劃三年內(nèi)電動化滲透率達(dá)50%
- 特斯拉FSD系統(tǒng)全球測試成功,無人駕駛技術(shù)再突破
- 賽靈思網(wǎng)絡(luò)通信專題有獎問答
- 找小伙伴們一起去闖 STM32 F7英雄聯(lián)盟設(shè)計(jì)大賽
- 勇闖泰克絕密黑科技實(shí)驗(yàn)室!
- 國產(chǎn)FPGA安路科技研討會-北京站 火熱報名中,參會贏京東卡!
- 開學(xué)季!EEworld下載中心 Cortex主題資源上傳
- 艾睿電子線上研討會:英特爾FPGA深度學(xué)習(xí)加速技術(shù) 7月30日上午10:00-11:30 期待您的蒞臨!
- 力源帶你了解安森美半導(dǎo)體開發(fā)神器——高度靈活的物聯(lián)網(wǎng)開發(fā)套件( IDK )!看視頻輕松答題享好禮!