freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arduino編程參考手冊(cè)中文版-資料下載頁

2025-06-25 06:01本頁面
  

【正文】 // Y為0,因?yàn)檎麛?shù)不能容納分?jǐn)?shù) z = (float)x / 。 // (,而不是2)double雙清度浮點(diǎn)型描述雙精度浮點(diǎn)數(shù)。占用4個(gè)字節(jié)。目前的arduino上的double實(shí)現(xiàn)和float相同,精度并未提高。提示如果你從其他地方得到的代碼中包含了double類變量,最好檢查一遍代碼以確認(rèn)其中的變量的精確度能否在arduino上達(dá)到。 stringstring(字符串)描述文本字符串可以有兩種表現(xiàn)形式。你可以使用字符串?dāng)?shù)據(jù)類型(這是0019版本的核心部分),或者你可以做一個(gè)字符串,由char類型的數(shù)組和空終止字符(39。\039。)構(gòu)成。(求助,待潤色Leo)本節(jié)描述了后一種方法。而字符串對(duì)象(String object)將讓你擁有更多的功能,同時(shí)也消耗更多的內(nèi)存資源。舉例以下所有字符串都是有效的聲明。 char Str1[15]。 char Str2[8] = {39。a39。, 39。r39。, 39。d39。, 39。u39。, 39。i39。, 39。n39。, 39。o39。}。 char Str3[8] = {39。a39。, 39。r39。, 39。d39。, 39。u39。, 39。i39。, 39。n39。, 39。o39。, 39。\039。}。 char Str4[ ] = arduino。 char Str5[8] = arduino。 char Str6[15] = arduino。聲明字符串的解釋在Str1中 聲明一個(gè)沒有初始化的字符數(shù)組在Str2中 聲明一個(gè)字符數(shù)組(包括一個(gè)附加字符),編譯器會(huì)自動(dòng)添加所需的空字符在Str3中 明確加入空字符在Str4中 用引號(hào)分隔初始化的字符串常數(shù),編譯器將調(diào)整數(shù)組的大小,以適應(yīng)字符串常量和終止空字符在Str5中 初始化一個(gè)包括明確的尺寸和字符串常量的數(shù)組在Str6中 初始化數(shù)組,預(yù)留額外的空間用于一個(gè)較大的字符串空終止字符一般來說,字符串的結(jié)尾有一個(gè)空終止字符(ASCII代碼0)。以此讓功能函數(shù)(())知道一個(gè)字符串的結(jié)束。否則,他們將從內(nèi)存繼續(xù)讀取后續(xù)字節(jié),而這些并不屬于所需字符串的一部分。這意味著,你的字符串比你想要的文字包含更多的個(gè)字符空間。這就是為什么Str2和Str5需要八個(gè)字符,即使“Arduino”只有七個(gè)字符 最后一個(gè)位置會(huì)自動(dòng)填充空字符。str4將自動(dòng)調(diào)整為八個(gè)字符,包括一個(gè)額外的空。在Str3的,我們自己已經(jīng)明確地包含了空字符(寫入39。\ 039。)。需要注意的是,字符串可能沒有一個(gè)最后的空字符(例如在Str2中您已定義字符長度為7,而不是8)。這會(huì)破壞大部分使用字符串的功能,所以不要故意而為之。如果你注意到一些奇怪的現(xiàn)象(在字符串中操作字符),基本就是這個(gè)原因?qū)е碌牧恕我?hào)?還是雙引號(hào)?定義字符串時(shí)使用雙引號(hào)(例如“ABC”),而定義一個(gè)單獨(dú)的字符時(shí)使用單引號(hào)(例如39。A39。)包裝長字符串你可以像這樣打包長字符串: char myString[] = “This is the first line” ” this is the second line” ” etcetera”。字符串?dāng)?shù)組當(dāng)你的應(yīng)用包含大量的文字,如帶有液晶顯示屏的一個(gè)項(xiàng)目,建立一個(gè)字符串?dāng)?shù)組是非常便利的。因?yàn)樽址旧砭褪菙?shù)組,它實(shí)際上是一個(gè)兩維數(shù)組的典型。在下面的代碼,”char*”在字符數(shù)據(jù)類型char后跟了一個(gè)星號(hào)39。*39。表示這是一個(gè)“指針”數(shù)組。所有的數(shù)組名實(shí)際上是指針,所以這需要一個(gè)數(shù)組的數(shù)組。指針對(duì)于C語言初學(xué)者而言是非常深?yuàn)W的部分之一,但我們沒有必要了解詳細(xì)指針,就可以有效地應(yīng)用它。樣例char* myStrings[]={ This is string 1, This is string 2, This is string 3, This is string 4, This is string 5,This is string 6}。 void setup(){ (9600)。} void loop(){ for (int i = 0。 i 6。 i++){ (myStrings[i])。 delay(500)。 }}String(c++)描述String類,是0019版的核心的一部分,允許你實(shí)現(xiàn)比運(yùn)用字符數(shù)組更復(fù)雜的文字操作。你可以連接字符串,增加字符串,尋找和替換子字符串以及其他操作。它比使用一個(gè)簡單的字符數(shù)組需要更多的內(nèi)存,但它更方便。僅供參考,字符串?dāng)?shù)組都用小寫的string表示而String類的實(shí)例通常用大寫的String表示。注意,在“雙引號(hào)”內(nèi)指定的字符常量通常被作為字符數(shù)組,并非String類實(shí)例。函數(shù)StringcharAt()pareTo()concat()endsWith()equals()equalsIgnoreCase()GetBytes()indexOf()lastIndexOflengthreplace()setCharAt()startsWith()substring()toCharArray()toLowerCase()toUpperCase()trim()操作符[](元素訪問)+(串連)==(比較)arrayArrays (數(shù)組)數(shù)組是一種可訪問的變量的集合。Arduino的數(shù)組是基于C語言的,因此這會(huì)變得很復(fù)雜,但使用簡單的數(shù)組是比較簡單的。創(chuàng)建(聲明)一個(gè)數(shù)組下面的方法都可以用來創(chuàng)建(聲明)數(shù)組。 myInts [6]。 myPins [] = {2,4,8,3,6}。 mySensVals [6] = {2,4,8,3,2}。 char message[6] = hello。 你聲明一個(gè)未初始化數(shù)組,例如myPins。在myPins中,我們聲明了一個(gè)沒有明確大小的數(shù)組。編譯器將會(huì)計(jì)算元素的大小,并創(chuàng)建一個(gè)適當(dāng)大小的數(shù)組。當(dāng)然,你也可以初始化數(shù)組的大小,例如在mySensVals中。請(qǐng)注意,當(dāng)聲明一個(gè)char類型的數(shù)組時(shí),你初始化的大小必須大于元素的個(gè)數(shù),以容納所需的空字符。訪問數(shù)組數(shù)組是從零開始索引的,也就說,上面所提到的數(shù)組初始化,數(shù)組第一個(gè)元素是為索引0,因此:mySensVals [0] == 2,mySensVals [1] == 4,依此類推 。這也意味著,在包含十個(gè)元素的數(shù)組中,索引九是最后一個(gè)元素。因此, int myArray[10] = {9,3,2,4,3,2,7,8,9,11}。 // myArray[9]的數(shù)值為11 // myArray[10],該索引是無效的,它將會(huì)是任意的隨機(jī)信息(內(nèi)存地址) 出于這個(gè)原因,你在訪問數(shù)組應(yīng)該小心。若訪問的數(shù)據(jù)超出數(shù)組的末尾(即索引數(shù)大于你聲明的數(shù)組的大小 1),則將從其他內(nèi)存中讀取數(shù)據(jù)。從這些地方讀取的數(shù)據(jù),除了產(chǎn)生無效的數(shù)據(jù)外,沒有任何作用。向隨機(jī)存儲(chǔ)器中寫入數(shù)據(jù)絕對(duì)是一個(gè)壞主意,通常會(huì)導(dǎo)致不愉快的結(jié)果,如導(dǎo)致系統(tǒng)崩潰或程序故障。要排查這樣的錯(cuò)誤是也是一件難事。 不同于Basic或JAVA,C語言編譯器不會(huì)檢查你訪問的數(shù)組是否大于你聲明的數(shù)組。指定一個(gè)數(shù)組的值: mySensVals [0] = 10。從數(shù)組中訪問一個(gè)值: X = mySensVals [4]。數(shù)組和循環(huán)數(shù)組往往在for循環(huán)中進(jìn)行操作,循環(huán)計(jì)數(shù)器可用于訪問每個(gè)數(shù)組元素。例如,將數(shù)組中的元素通過串口打印,你可以這樣做: int i。 for (i = 0。 i 5。 i = i + 1) { (myPins[i])。 }數(shù)據(jù)類型轉(zhuǎn)換char()描述將一個(gè)變量的類型變?yōu)閏har。語法char(x)參數(shù)x:任何類型的值返回charbyte()描述將一個(gè)值轉(zhuǎn)換為字節(jié)型數(shù)值。語法byte(x)參數(shù)X:任何類型的值返回字節(jié)int()簡介將一個(gè)值轉(zhuǎn)換為int類型。語法int(x)參數(shù)x:一個(gè)任何類型的值返回值int類型的值word()描述把一個(gè)值轉(zhuǎn)換為word數(shù)據(jù)類型的值,或由兩個(gè)字節(jié)創(chuàng)建一個(gè)字符。語法word(x)word(h, l)參數(shù)X:任何類型的值H:高階(最左邊)字節(jié)L:低序(最右邊)字節(jié)返回字符long()描述將一個(gè)值轉(zhuǎn)換為長整型數(shù)據(jù)類型。語法long(x)參數(shù)x:任意類型的數(shù)值返回長整型數(shù)float()描述將一個(gè)值轉(zhuǎn)換為float型數(shù)值。語法float(x)參數(shù)X:任何類型的值返回float型數(shù)變量作用域amp。修飾符變量作用域變量的作用域在Arduino使用的C編程語言的變量,有一個(gè)名為 作用域(scope) 的屬性 。這一點(diǎn)與類似BASIC的語言形成了對(duì)比,在BASIC語言中所有變量都是 全局(global) 變量。在一個(gè)程序內(nèi)的全局變量是可以被所有函數(shù)所調(diào)用的。局部變量只在聲明它們的函數(shù)內(nèi)可見。在Arduino的環(huán)境中,任何在函數(shù)(例如,setup(),loop()等)外聲明的變量,都是全局變量。當(dāng)程序變得更大更復(fù)雜時(shí),局部變量是一個(gè)有效確定每個(gè)函數(shù)只能訪問其自己變量的途徑。這可以防止,當(dāng)一個(gè)函數(shù)無意中修改另一個(gè)函數(shù)使用的變量的程序錯(cuò)誤。有時(shí)在一個(gè)for循環(huán)內(nèi)聲明并初始化一個(gè)變量也是很方便的選擇。這將創(chuàng)建一個(gè)只能從for循環(huán)的括號(hào)內(nèi)訪問的變量。例子:int gPWMval。 // 任何函數(shù)都可以調(diào)用此變量 void setup(){ // ...} void loop(){ int i。 // i 只在 loop 函數(shù)內(nèi)可用 float f。 // f 只在 loop 函數(shù)內(nèi)可用 // ... for (int j = 0。 j 100。 j++){ //變量j只能在循環(huán)括號(hào)內(nèi)訪問 }}static (靜態(tài)變量)static關(guān)鍵字用于創(chuàng)建只對(duì)某一函數(shù)可見的變量。然而,和局部變量不同的是,局部變量在每次調(diào)用函數(shù)時(shí)都會(huì)被創(chuàng)建和銷毀,靜態(tài)變量在函數(shù)調(diào)用后仍然保持著原來的數(shù)據(jù)。靜態(tài)變量只會(huì)在函數(shù)第一次調(diào)用的時(shí)候被創(chuàng)建和初始化。例子/* RandomWalk* Paul Badger 2007* RandomWalk函數(shù)在兩個(gè)終點(diǎn)間隨機(jī)的上下移動(dòng)* 在一個(gè)循環(huán)中最大的移動(dòng)由參數(shù)“stepsize”決定*一個(gè)靜態(tài)變量向上和向下移動(dòng)一個(gè)隨機(jī)量*這種技術(shù)也被叫做“粉紅噪聲”或“醉步”*/ define randomWalkLowRange 20define randomWalkHighRange 20 int stepsize。 INT thisTime。int total。 void setup(){ (9600)。} void loop(){ // 測試randomWalk 函數(shù) stepsize = 5。 thisTime = randomWalk(stepsize)。(thisTime)。 delay(10)。} int randomWalk(int moveSize){ static int place。 // 在randomwalk中存儲(chǔ)變量 // 聲明為靜態(tài)因此它在函數(shù)調(diào)用之間能保持?jǐn)?shù)據(jù),但其他函數(shù)無法改變它的值 place = place + (random(moveSize, moveSize + 1))。 if (place randomWalkLowRange){ //檢查上下限 place = place + (randomWalkLowRange place)。 // 將數(shù)字變?yōu)檎较騷 else if(place randomWalkHighRange){ place = place (place randomWalkHighRange)。 // 將數(shù)字變?yōu)樨?fù)方向} return place。}volatile (易變變量)volatile關(guān)鍵字volatile這個(gè)關(guān)鍵字是變量修飾符,常用在變量類型的前面,以告訴編譯器和接下來的程序怎么對(duì)待這個(gè)變量。聲明一個(gè)volatile變量是編譯器的一個(gè)指令。編譯器是一個(gè)將你的C/C++代碼轉(zhuǎn)換成機(jī)器碼的軟件,機(jī)器碼是arduino上的Atmega芯片能識(shí)別的真正指令。具體來說,它指示編譯器編譯器從RAM而非存儲(chǔ)寄存器中讀取變量,存儲(chǔ)寄存器是程序存儲(chǔ)和操作變量的一個(gè)臨時(shí)地方。在某些情況下,存儲(chǔ)在寄存器中的變量值可能是不準(zhǔn)確的。如果一個(gè)變量所在的代碼段可能會(huì)意外地導(dǎo)致變量值改變那此變量應(yīng)聲明為volatile,比如并行多線程等。在arduino中,唯一可能發(fā)生這種現(xiàn)象的地方就是和中斷有關(guān)的代碼段,成為中斷服務(wù)程序。例子//當(dāng)中斷引腳改變狀態(tài)時(shí),開閉LED int pin = 13。volatile int state = LOW。 void setup(){ pinMode(pin, OUTPUT)。 attachInterrupt(0, blink, CHANGE)。} void loop(){ digit
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1