Ⅰ 我想將演算法固化到FPGA晶元中,請教高手解答,有獎!謝謝!
演算法,自然是通過邏輯實現的。
所以,您說的演算法,也就是把一些固定的邏輯,「固化」在FPGA晶元中、
如果是基於SRAM的FPGA晶元的話,自然是掉電易失的。就跟你的電腦內存一樣,掉了電,內存里頭的數據都沒了。所以這類晶元必須上電配置,可以用外置的PROM或者其他介質作為存儲配置信息,當然也可以用電纜下載。
其實也有一些軍品和宇航級FPGA採用FLASH或者熔絲與反熔絲工藝的查找表結構,那個自然就不需要上述的配置過程,下載之後就已經「固化」了。
Ⅱ 江湖救急 如何將pid演算法 寫入單片機中
PID用在溫控系統較多,比如這篇論文,你可以參考一下:基於單片機的PID溫度控制器的設計 電子畢業設計論文
Ⅲ 怎麼才能寫一演算法,將數據元素x插入到順序表L的適當位置保持該表的有序性
if(array[i]<=x&&array[i+1]>=x) {k[j++]=array[i];k[j++]=x;}
Ⅳ 這個怎麼改才對啊
你的代碼,函數在使用前沒有聲明;
演算法也比較煩瑣,我重新給你編了個
不知道行不行~!
#include <stdio.h>
int main()
{
char a[6];
int n=0;
printf("Please input n:\n");
gets(a);
char *p = &a[0];
while(*p != '\0')
{
if(*p == '0')
n++;
p++;
}
if(n>5)
printf("Input Error\n");
else
printf("%d\n",n);
return 0;
}
Ⅳ 如何將matlab的演算法設計結果映射到晶元設計
這個流程比較復雜,首先你需要將你的演算法變成定點的演算法,然後考慮將它變成C語言的程序,晶元設計實用verilog或者是VHDL語言根據你的C語言做相應的設計。然後你就可以比對HDL的輸出跟matlab的結果了。
Ⅵ 如何用開源飛控Pixhawk進行二次開發
以下所描述的都是針對px4原生固件,此外,由於固件更新過於頻繁,本文描述的是15年7月的固件,主要是舉例,有改動的話,自己再研究研究吧(後面換cmake編譯方式了,改動蠻大)。
既然要做開發,第一步就是搭好開發環境,根據我的經驗,最好是在linux環境下編譯,這樣效率會很快,以前在windows下編譯,經常40分鍾以上,這樣就太影響開發了;
第二步,大概了解下固件的架構,
如果只涉及應用層的開發,那底層的nuttx系統就可以繞過去了,一般,最好先把uorb模塊的機制整明白就好了,從uorb入手,了解每個話題的來源以及作用,整理數據流,清楚每個模塊之間的關系即可,比如,要實現手動模式,哪些模塊互相交互,auto模式,又有哪些模塊起作用,
如果涉及相應演算法的開發,要學會定位到相應的演算法模塊,甚至具體到哪些代碼,比如,你想試驗你的姿態估計演算法,那你就將姿態估計模塊替換掉即可,不過相應的介面仍需要和px4環境一樣,以姿態估計為例,最後要發布你的vehicle_attitude話題,不然無法與其他模塊交互;
另外,不要試圖在代碼中找main函數,那是單片機思維,你只需看啟動腳本即可,\ROMFS\px4fmu_common\init.d\rcs;
第三步,針對你的具體情況,定位相應的模塊,進行精讀研究,雖然模塊基本是用C++寫的,但是不會C++也沒關系,畢竟又不是讓你寫,本人倒目前為止,也不會C++,配合注釋,看明白就好了,比如,整理下mavlink的控制流程;
px4原生固件模塊列表:
系統命令程序
mavlink –通過串口發送和接收mavlink信息
sdlog2 –保存系統日誌/飛行數據到SD卡
tests –測試系統中的測試程序
top –列出當前的進程和CPU負載
uORB – 微對象請求代理器-分發其他應用程序之間的信息
驅動
mkblctrl–blctrl電子模塊驅動
esc_calib –ESC的校準工具
fmu –FMU引腳輸入輸出定義
gpio_led –GPIOLED驅動
gps –GPS接收器驅動
pwm –PWM的更新速率命令
sensors –感測器應用
px4io –px4io驅動
uavcan –uavcan驅動
飛行控制的程序
飛行安全和導航
commander –主要飛行安全狀態機
navigator –任務,失效保護和RTL導航儀
估計姿態和位置
attitude_estimator_ekf –基於EKF的姿態估計
ekf_att_pos_estimator –基於EKF的姿態和位置估計
position_estimator_inav–慣性導航的位置估計
multirotor姿態和位置控制器
mc_att_control–multirotor姿態控制器
mc_pos_control –multirotor位置控制器
fixedwing姿態和位置控制器
fw_att_control –固定翼飛機的姿態控制
fw_pos_control_l1 –固定翼位置控制器
垂直起降姿態控制器
vtol_att_control –垂直起降姿態控制器
最後提一句,多看看官網的說明,另外根據本人的經驗來看,由於大框架,代碼人家都寫好了,通常你要加功能,所修改的也就幾行代碼而已,舉例說明,比如px4固件只能在手動模式解鎖,假如我要修改成定高模式解鎖
Ⅶ 如何將演算法用在實際中
將實際問題抽象成模型,然後對應的演算法來解決就行了,比如銀行排隊的問題就可以用隊列來模擬
Ⅷ 關於上位機如何控制pixhawk
商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
鏈接:
來源:知乎
以下所描述的都是針對px4原生固件,此外,由於固件更新過於頻繁,本文描述的是15年7月的固件,主要是舉例,有改動的話,自己再研究研究吧(後面換cmake編譯方式了,改動蠻大)。
既然要做開發,第一步就是搭好開發環境,根據我的經驗,最好是在linux環境下編譯,這樣效率會很快,以前在windows下編譯,經常40分鍾以上,這樣就太影響開發了;
第二步,大概了解下固件的架構,
如果只涉及應用層的開發,那底層的nuttx系統就可以繞過去了,一般,最好先把uorb模塊的機制整明白就好了,從uorb入手,了解每個話題的來源以及作用,整理數據流,清楚每個模塊之間的關系即可,比如,要實現手動模式,哪些模塊互相交互,auto模式,又有哪些模塊起作用,
如果涉及相應演算法的開發,要學會定位到相應的演算法模塊,甚至具體到哪些代碼,比如,你想試驗你的姿態估計演算法,那你就將姿態估計模塊替換掉即可,不過相應的介面仍需要和px4環境一樣,以姿態估計為例,最後要發布你的vehicle_attitude話題,不然無法與其他模塊交互;
另外,不要試圖在代碼中找main函數,那是單片機思維,你只需看啟動腳本即可,\ROMFS\px4fmu_common\init.d\rcs;
第三步,針對你的具體情況,定位相應的模塊,進行精讀研究,雖然模塊基本是用C++寫的,但是不會C++也沒關系,畢竟又不是讓你寫,本人倒目前為止,也不會C++,配合注釋,看明白就好了,比如,整理下mavlink的控制流程;
px4原生固件模塊列表:
系統命令程序
mavlink –通過串口發送和接收mavlink信息
sdlog2 –保存系統日誌/飛行數據到SD卡
tests –測試系統中的測試程序
top –列出當前的進程和CPU負載
uORB – 微對象請求代理器-分發其他應用程序之間的信息
驅動
mkblctrl–blctrl電子模塊驅動
esc_calib –ESC的校準工具
fmu –FMU引腳輸入輸出定義
gpio_led –GPIOLED驅動
gps –GPS接收器驅動
pwm –PWM的更新速率命令
sensors –感測器應用
px4io –px4io驅動
uavcan –uavcan驅動
飛行控制的程序
飛行安全和導航
commander –主要飛行安全狀態機
navigator –任務,失效保護和RTL導航儀
估計姿態和位置
attitude_estimator_ekf –基於EKF的姿態估計
ekf_att_pos_estimator –基於EKF的姿態和位置估計
position_estimator_inav–慣性導航的位置估計
multirotor姿態和位置控制器
mc_att_control–multirotor姿態控制器
mc_pos_control –multirotor位置控制器
fixedwing姿態和位置控制器
fw_att_control –固定翼飛機的姿態控制
fw_pos_control_l1 –固定翼位置控制器
垂直起降姿態控制器
vtol_att_control –垂直起降姿態控制器
最後提一句,多看看官網的說明,另外根據本人的經驗來看,由於大框架,代碼人家都寫好了,通常你要加功能,所修改的也就幾行代碼而已,舉例說明,比如px4固件只能在手動模式解鎖,假如我要修改成定高模式解鎖
希望可以幫助你,歡迎採納
Ⅸ px4怎麼設定航線
px4地面站設置飛行計劃,寫入飛控讓飛行器自主完成飛行任務。
在地圖上點擊第一個點,就會出現一個標記點,同時下方會顯示出1號標記點的屬性,例如執行的動作、GPS坐標等。航點寫入成功後,需要飛控切換到AUTO模式才能執行航線。在擴展調參界面,將通道7選項設置為AUT。同時還要將遙控器7通道設置成開關方便使用。
PX4是國內較受歡迎的一款無人機,操作難度不是太高,適合新手上手。