看嗎?”藍澤光繼續問。
“你看得懂嗎?”董晨似乎很鄙夷的樣子。
“看不懂我來幹什麼呢學長?”藍澤光一副理所當然的樣子,然後乾脆男子氣的用力把他擠到了一邊,握住了滑鼠。然後,立刻就發現了問題:“喂,學長,你的通訊地址錯了!”
“我可以看看嗎?”藍澤光繼續問。
“你看得懂嗎?”董晨似乎很鄙夷的樣子。
“看不懂我來幹什麼呢學長?”藍澤光一副理所當然的樣子,然後乾脆男子氣的用力把他擠到了一邊,握住了滑鼠。然後,立刻就發現了問題:“喂,學長,你的通訊地址錯了!”(未完待續。。)
#259 難怪你沒女朋友
通訊地址錯了?嚴格來說,微控制器系統中iic匯流排若是要串聯多片晶片通訊時,最基本的命令操作流程就是傳送器件地址,器件內部的操作地址和需要操作的命令,若是器件地址錯了,後面的兩個資料就都會是擺設。
mpu9150這個陀螺儀是透過內部磁場相對於地磁變化的改變來感應各軸加速度的,內部可以透過iic匯流排直接讀取因磁場變化而改變電壓的ad值,ad值有四組,這四組資料名為四元數,讀出這些資料後,經過軟體上的濾波和尤拉角融合計算,就可以得到晶片三維空間上的xyz軸上的姿態,同時,也可以得到三圍方向的加速度和角速度。
同時,也可以透過讀取第五組資料,取得電子羅盤的對應地磁的方向角。
完成這一切,都需要先要找到器件地址,然後再往相關的暫存器裡傳送指令,隨後晶片才會把資料返回回來。
但是,因為mpu9150晶片內部還自帶了一個資料處理器,名字叫dmp,就是運動處理器,這個處理器能夠直接幫助處理器完成需要消費大量運算資源的四元數姿態融合過程,直接給處理器返回姿三軸姿態角度、三軸加速度,三向加速度和地磁角。是一個很方便的厲害的工具。
但是,在官方的reference裡,提供有晶片的address。不過,在還分成了dmp處理器和直接讀取四元數ad值兩個地址。兩個地址有不同的暫存器和控制命令。藍澤光發現,這位董晨學長用的是移植的程式,是透過dmp來讀取資料的。而他的器件地址,的宏定義,卻寫到了mpu9150的是四元數控制地址上了。
好吧,說了這麼多,藍澤光只想表明一件事:那就是董晨學長你確實是弄錯了。
“怎麼可能!”他站起來一副就要和藍澤光撕逼的樣子。
不過輪無力,他這一個常年缺乏鍛鍊的弱雞程式狗,怎麼可能能撼動藍澤光?
“可不可能改一改就知道了!”藍澤光露出一副挑戰的笑容。然後就在鍵盤上敲打了幾下,把程式預編譯宏命令的器件地址改掉,然後就摁下了編譯按鈕。
“臥槽都叫你不要改我程式了。等下子你改得回來嗎?你亂弄什麼%!#¥……”
後面的話藍澤光就自動忽略了。雖然不能說人家逗比,但藍澤光理解一個程式猿的幸苦,一般是不希望別人來亂改自己辛辛苦苦寫的程式的。不過藍澤光看到這套程式,裡面有一大堆的英文注視。就早知道是移植來的。
雖然移植也需要時間。但至少不會那麼辛苦……
藍澤光鄙夷了一下,這時候程式編譯就完成了。0error,9warning,雖然有警告,但程式應該能用。於是藍澤光順手就點選了loading,編譯過可以除錯的程式就下載到微控制器裡。復位之後,就可以在看到效果。
但是,什麼效果都沒有啊喂!
“……你看到了沒有!你亂改是沒有用的。快點改回來!”學長又是一陣激動,然後就伸手想要去拉藍