資源描述:
《K60 入門講解.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、K60入門昆明理工大學(xué)機(jī)電工程學(xué)院陳勝利Mail:ASKMEASKHE@163.COM定位有一定單片機(jī)基礎(chǔ)講軟件,不講硬件C語言講學(xué)習(xí)方法不講具體知識(shí)思路1怎么樣建立一個(gè)工程2一個(gè)工程組織案例3HowtoGetHelp4可能遇到的問題怎么樣建立一個(gè)工程改名改名改名怎么樣建立一個(gè)工程(1)更改工程文件夾名為LCD(2)更改light.dep為LCD.dep(3)更改light.ewd為LCD.ewd(4)更改light.ewp為LCD.Ewp(5)更改light.eww為LCD.eww(6)用記事本方式打開LCD.Eww怎么樣建立一個(gè)工程
2、.0"encoding="iso-8859-1"?>$WS_DIR$light..ewp將其中的light.ewp改為LCD..ewp怎么樣建立一個(gè)工程(7)打開該工程(8)進(jìn)行編譯SUCCESS一個(gè)工程組織案例一個(gè)工程組織案例思路有哪些寄存器怎么操作寄存器操作的引腳在哪一個(gè)工程組織案例LED寄存器結(jié)構(gòu)IO口PinControlRegistern(PORTA_PCR0)SIM_SCG寄存器clockgatecontrol調(diào)用方法寄
3、存器結(jié)構(gòu)寄存器結(jié)構(gòu)clockgatecontrolSIM_SCG5寄存器打開模塊時(shí)鐘P321PinControlRegisterPORTA_PCR寄存器切換控制引腳功能SignalMultiplexing(K60SignalMultiplexingandPinAssignments)調(diào)用方法操作寄存器的方法GPIOA_PDOR直接賦值GPIO_PDOR_PDO(x)位賦值置位與清位的宏函數(shù)置位與清位的宏函數(shù)1.置位與清位的宏函數(shù)設(shè)置寄存器某一位為1,稱為置位;設(shè)置寄存器某一位為0,稱為清位。這在底層驅(qū)動(dòng)編程時(shí)經(jīng)常用到。置位與清位的基本原則是:當(dāng)對(duì)寄存器的某一位進(jìn)行置
4、位或清位操作時(shí),不能干擾該寄存器的其他位,否則,可能會(huì)出現(xiàn)意想不到的錯(cuò)誤。綜合利用“<<”、“>>”、“
5、”、“&”、“~”等位運(yùn)算符,可以實(shí)現(xiàn)置位與清位,且不影響其他位的功能。置位與清位的宏函數(shù)下面以8位寄存器為例進(jìn)行說明,其方法適用于各種位數(shù)的寄存器。設(shè)R為8位寄存器,下面說明將R的某一位置位與清位,而不干預(yù)其他位的編程方法:置位與清位的宏函數(shù)(1)置位。要將R的第3位置1,其他位不變,可以這樣做:R
6、=(1<<3),其中“1<<3”的結(jié)果是“0b00001000”,R
7、=(1<<3)也就是R=R
8、0b00001000,任何數(shù)和0相或不變,任何數(shù)和1相或?yàn)?,這
9、樣達(dá)到對(duì)R的第3位置1,但不影響其他位的目的。置位與清位的宏函數(shù)(2)清位。要將R的第2位清0,其他位不變,可以這樣做:R&=~(1<<2),其中“~(1<<2)”的結(jié)果是“0b11111011”,R&=~(1<<2)也就是R=R&0b11111011,任何數(shù)和1相與不變,任何數(shù)和0相與為0,這樣達(dá)到對(duì)R的第2位清0,但不影響其他位的目的置位與清位的宏函數(shù)(3)獲得某一位的狀態(tài)。(R>>4)&1,是獲得R第4位的狀態(tài),“R>>4”是將R右移4位,將R的第4位移至第0位,即最后1位,再和1相與,也就是和0b00000001相與,保留R最后1位的值,以此得到第4位的狀態(tài)
10、值。置位與清位的宏函數(shù)為了方便使用,把這種方法改為帶參數(shù)的“宏函數(shù)”,并且簡明定義,放在公共頭文件(common.h)中。使用該“宏”的文件,可以包含“common.h”文件。#defineBSET(bit,Register)((Register)
11、=(1<<(bit)))#defineBCLR(bit,Register)((Register)&=~(1<<(bit)))#defineBGET(bit,Register)(((Register)>>(bit))&1)GPIO_PDOR賦值typedef?在計(jì)算機(jī)編程語言中用來為復(fù)雜的聲明定義簡單的別名用在舊的C代碼中
12、,幫助struct。以前的代碼中,聲明struct新對(duì)象時(shí),必須要帶上struct,即形式為:struct結(jié)構(gòu)名對(duì)象名,如:structtagPOINT1{???intx;inty;?};structtagPOINT1p1;而在C++中,則可以直接寫:結(jié)構(gòu)名對(duì)象名,即:tagPOINT1p1;typedefstructtagPOINT{???intx;inty;}POINT;POINTp1;//這樣就比原來的方式少寫了一個(gè)struct,比較省事,尤其在大量使用的時(shí)候GPIO_PDOR賦值/*!GPIO-Peripheralregisterstructu