2015年6月12日 星期五

Linkit one 上面常見的問題

一樣,整理一下作為筆記使用

1.Conctructure 不能再Setup以前使用

      EX: Adafruit MAX31855 library當中,硬體的設定是在constructure裡面設定的
             Linkit one 會出問題,但是把這段code移動到setup就好

2.Timming 不準
      由於Linkit one 上面跑的是RTOS,對於Arduino的Code會被Driver中斷,所以要在Arduino code裡面做到us等級的delay是不準的(還是可以試試)
    
   EX:DHT11,22 用Adafruit的話需要改
          
                                           DHT dht(DHTPIN, DHTTYPE, 13);

       但是就算是改過了,出錯率還是很高,所以不建議Linkit one的Arduino code拿來刻時序要求很精準的通訊.(然後順便婊一下,DHTXX真的很爛,我的觀察啦,我不喜歡用

3.Analog速度的問題
     Linkit one上面Analog不快,大概20ms,所以也不建議拿內建的Analog pin做示波器等級的東西,但是SPI速度超級快(他的基頻高),所以真的要快速的ADC,Ti有很多選擇,用SPI接上就好

4.I2C一次只能送8byte
    如標題,就是在Start後面最多8 byte,但是可以送Repeat Start
5.delay(1)沒有作用
    因為底層的RTOS systick是4.12ms,所以delay(5)以下其實因為小數點的關係會變成delay(0)
    導致delay(1~4)沒有作用,解決辦法就是改用delayMicroseconds(1000)

還有的話這篇文會增加,有解決的話會附註


5 則留言:

  1. 這是我做的libaray. DHT11, DHT21, DHT22 for LinkIt One
    https://labs.mediatek.com/forums/posts/list/3389.page

    回覆刪除
  2. 這是我做的libaray. DHT11, DHT21, DHT22 for LinkIt One
    https://labs.mediatek.com/forums/posts/list/3389.page

    回覆刪除
  3. 看來是討論區那邊我問題 我補一下
    https://github.com/LinWeiTing/LDHT

    回覆刪除
  4. thank u!
    i finally made it!
    i changed the count of dht(xx,xx,count) to 13 in dht.h in the lib from http://www.electroschematics.com/11291/arduino-dht22-am2302-tutorial-library/
    and it worked

    回覆刪除