揭祕:
是因為吧cont 錯寫成了count
這是兩個不同的變數
有這個事件也可以得出
以後百度搜不到的問題,也許你目前想的這裡並沒有問題
去尋找一下
其他可能的錯誤
1,從字面上理解if為如果,就是如果這種情況,如果那種情況。
2,else if 不是上一個條件的前提下,如果是這個條件。
3,區別1:if無論是否滿足條件都會向下執行,知道程式結束,else if 滿足一個條件就會停止執行。
4,區別2:由於if都會執行一遍,則可能會同一個需要判斷的事件,會進入2個if語句中,出現錯誤,而else if就不會發生這樣的事情。
這樣寫成else if的形式,就不容易程式同時執行兩次
定義區域性變數,其實就是在棧中通過移動棧指標來給程式提供一個記憶體空間和這個區域性變數名系結。因為這段記憶體空間在棧上,而棧記憶體是反覆使用的(髒的,上次用完沒清零的),所以說使用棧來實現的區域性變數定義時如果不顯式初始化,值就是髒的。
c語言中只有區域性變數在未賦初值時,才是亂數,全域性變數和靜態變數未賦初值時編譯器會自動將其初始化為0。區域性變數是分配在堆疊上的,而全域性變數和靜態變數是分配在資料段中的。這個跟程式的記憶體分配是有關係的。
3. 燈光閃爍時間問題
4.讀溫度的時間不能太長
這樣800ms就讀不出來,試試0300ms
這是10ms讀取一次的效果:
3000ms的讀取效果:
數碼管無閃爍
但是led幾乎沒亮
這樣就可以亮
經過很多次的測驗,發現很多時候不是空格的問題
因此,控制變數很重要,要記錄下倆對應的程式和現象
結果:
400ms的不能亮,800ms能亮
(猜測1:是讀取溫度需要750ms,恰好跳過了中斷
猜測2: 400ms太短,程式執行到這裡來的時候,標誌位又變了
(大概程式就是再寫了溫度後,LED不太正常的亮了)
{所以以後不能隨意的更改程式碼,改一次,一定要記住更改內容,變化物件!)
揭祕:
800 是200,400,800的公倍數,如果用if else語句,就會造成選擇結構,滿足其中一個,就不會進入另一個繼續判斷。
就會造成flag標誌位不產生變化。
一個優秀的程式設計師對這些簡單的語句用的是爐火純青,淋漓盡致啊