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

正文內(nèi)容

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

2025-06-25 06:01本頁面
  

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