實驗源代碼 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數 i: "); scanf("%d",&k); 四川大學實驗報告 printf("請輸入矩陣的列數 j: "); scanf("%d",&n); warshall(k,n); }
上傳時間: 2016-06-27
上傳用戶:梁雪文以
#include "iostream" using namespace std; class Matrix { private: double** A; //矩陣A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //為向量b分配空間并初始化為0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //為向量A分配空間并初始化為0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析構中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"請輸入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"請輸入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"個:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分別求得U,L的第一行與第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分別求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"計算U得:"<<endl; U.Disp(); cout<<"計算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
標簽: 道理特分解法
上傳時間: 2018-05-20
上傳用戶:Aa123456789
經濟的發展與技術的進步帶動著人們更加渴望高品質的生活質量,作為當今產業大熱門的智能家居逐漸成為市場關注的焦點,很多科技公司紛紛開發出自己的產品。不過由于浮夸的宣傳,不合理的定位和高昂的價格,導致了消費者紛紛對智能家居產品望而卻步,行業呈現出叫好不叫賣的現象。鑒于此種情況,本文定位于智能家居中低端產業,開發設計出一款簡單實用、價格低廉的智能家居控制網關系統,目的是在于讓普通人也可以享受科技發展的成果。 該網關系統綜合了電子技術、計算機技術、通信技術等多種技術,從硬件和軟件兩個方面對控制網關進行深入研究,最終實現對家居環境遠程監測的目的。 在硬件方面,該控制網關系統采用以單片機為硬件控制平臺,以供電模塊、時鐘模塊、EEPROM模塊等眾多外圍電路模塊為輔助,結合ZigBee與WiFi無線通訊技術,完成對智能家居網關系統的搭建工作。該網關系統的單片機采用功能強大、價格低廉基于ARM32位CortexTM-M3的STM32F103RCT6,它主要負責對家居環境的任務調度,智能控制;ZigBee部分采用主芯片為CC2530的無線通信模塊,該模塊主要包括兩個部分:協調器和終端節點,終端節點除了通信部分,還包括溫濕度傳感器、光線傳感器、煙感傳感器等部分,它負責完成對數據的采集、打包和發送工作,協調器則負責把終端節點發送的數據進行重新打包然后通過串口傳送給主控模塊;WiFi部分采用的是價格低廉、功能實用的ESP8266WiFi通信模塊,該模塊有三種工作模式:STA、AP和STA/AP,使得WiFi部分兼具連接熱點和發送熱點兩種功能,該模塊負責智能家居控制單元和外界通信的工作,它通過串口和控制單元通信,然后通過WiFi網絡發送接收信息。 在軟件方面,控制網關采用以Keil和IAR為開發環境,以uC/OS-Ⅱ操作系統為程序運行環境,結合C語言及少量匯編語言,共同完成系統的軟件控制工作。Keil和IAR作為開發環境可以進行程序檢測、燒錄等輔助工作,大大減輕了工作量;uC/OS-Ⅱ操作系統短小精煉、功能強大的特點,使得硬件資源可以更加合理的利用,有助于節約成本,同時也讓控制網關系統可以實時多任務執行,增強了系統功能;此外充分合理利用了網絡庫函數資源,大大節約了學習與開發進度。...
上傳時間: 2022-05-30
上傳用戶:
第9章 通用IO接口.wmv 32.3M第8章 嵌入式系統UC OS-Ⅱ.wmv 27.9M第7章 嵌入式實時操作系統FREERTOS.wmv 44M第6章 基于ARM CORTEX-M3的STM32應用編程.wmv 32.9M第5章 ARM CORTEX-M3指令集.wmv 26M第4章 搭建ARM嵌入式開發平臺.wmv 48.9M第3章 ARM處理器構架.wmv 42.7M第2章 嵌入式操作系統簡介.wmv 43.9M第23章 嵌入式系統UC OS-Ⅱ的移植.wmv 18.5M第22章 嵌入式實時操作系統FREERTOS的移植.wmv 17.8M第21章 電源控制(PWR).wmv 25.7M第20章 DMA控制器.wmv 18.2M第1章 嵌入式系統開發概述.wmv 40.5M第19章 備份寄存器(BKP).wmv 16.1M第18章 看門狗系統.wmv 20.7M第17章 時鐘控制系統.wmv 32.6M第16章 高級控制定時器系統.wmv 45.9M第15章 通用定時器系統.wmv 35.2M第14章 同步串行通信接口.wmv 35.5M第13章 異步串行通信接口.wmv 38.7M第12章 中斷系統.wmv 33M第11章 ADC系統.wmv 50.4M第10章 FLASH.wmv 23.6M
標簽: 嵌入式
上傳時間: 2022-06-14
上傳用戶:
隨著嵌入式技術的不斷發展,嵌入式芯片的不斷革新,嵌入式操作系統也逐漸成為嵌人式系統中不可或缺的部分。嵌入式操作系統的運用不僅能夠更有效、更合理的利用現有的CPU的資源,而且能夠簡化應用軟件的設計,縮短應用的開發周期,保證系統的可靠性和實時性。本文主要研究基于STM32芯片的硬件平臺,由于RAM資源的限制,只能使用占用資源少的小型操作系統,常見的主要有uC/os-Il eCos,FreeRTOS等,與uC/Os-1 eCcos等商業收費的操作系統不同,FreeRTOS操作系統是一個源碼公開的免費實時操作系統,能夠很好地移植于各種體系結構的微型處理器。1 FreeRTOS操作系統的體系結構作為一款輕量級操作系統,FreeRTOS提供了任務管理、時間管理、信號量、消息隊列、內存管理、記錄等功能,并且具有源碼公開、可裁減、可移植、調度策略靈活的特點[1-2,。本文主要從任務調度機制、系統時間管理機制、內存分配機制、任務通信與同步機制介紹操作系統的體系結構,并針對時下流行的C/OS-1系統進行類
上傳時間: 2022-06-20
上傳用戶:
Kinetis系列是飛思卡爾公司基于ARM Cortex-M4和Cortex-M0+內核的單片機,和CortexM3相比,M4內核主要增加了DSP運算指令和可選的浮點運算單元,同時保持了與Cortex-M3的兼容性,因此被寄予希望能逐步替代Cortex-M3。Kinetis也成為飛思卡爾杯全國大學生智能車競賽新的硬件平臺之一。社C/OS-III是Micrium公司推出的全新RTOS,特別適用于那些有計算前導零(CLZ)硬件指令的高端32位CPU,可大大加速就緒表查找速度。uC/OS-IⅡ的主要精華在于其巧妙的優先級軟件查表算法,而對于有CLZ硬件算法指令的CPU,如MIPS、PowerPC、ARM11及以上系列,仍使用uC/OS1l就不那么合理了。uC/OS-l源代碼公開,官方已提供對目前主流單片機的移植支持,并且針對幾大主流單片機都提供相應的教材1時,Kinetis就是其中之一。Micrium官方提供的基于Kinetis平臺的范例都是使用1AR作為集成開發環境的,考慮到飛思卡爾官方的CodeWarrior開發環境有著廣泛的用戶群,尤其是使用過S08/S12等單片機的用戶,大多熟悉CodeWarrior。因此,本文將以Kinetis 平臺為例,講述如何使用CodeWarrior集成開發環境將uC/OSI運行起來,作為應用開發的基礎,也便于那些教學中使用CodeWarrior編譯器的師生,將C/OSII引入嵌入式系統教學。
標簽: CodeWarrior
上傳時間: 2022-06-24
上傳用戶:jason_vip1
摘要:設計了一種基于STM32和uC/OS-ll的二維數控X-Y工作臺控制系統。為使該數控系統具有良好的實時性和穩定性,以嵌入式STM32Fl03VET6為控制核心,采用實時操作系統uC/OS-lⅡ,設計任務間的通信方式,集中管理軟硬件資源,提高系統的整體性能。本設計支持簡單G代碼輸入并對G代碼編程,實現數控X-Y工作臺步進電機直線插補和圓弧插補,完成平面輪廓加工.使數控工作臺加工實時性和穩定性進一步提高。關鍵詞:STM32;uC/OS-ll;數控;實時性;插補以計算機(PC機)作為基礎的數字控制機床(CNC),解決了大量硬件制約問題,同時使很多應用軟件得到兼收,為我國CNC開發和應用帶來了新的機遇。然而,發展迅速的基于PC的數控系統也有著不足之處:由于PC的體積限制,這種數控系統不能夠裝人對體積有嚴格要求的微型或小型數控系統,且價格昂貴;另外,基于PC的CNC功能強大,對于一些功能要求單一的簡單系統,就難以發揮其所有功能,造成資本浪費等問題。而嵌入式系統的涌現,正好彌補了基于PC的數控的不足,為數控技術提供了一種靈活方便、廉價的控制系統。目前,嵌入式數控系統的研究開發與應用,已經成為一個新的發展方向
上傳時間: 2022-06-25
上傳用戶:canderile
前言:我從2011年年初開始玩LPC1768,在公司做過幾個LPC1768的小項目,都是基于UCOS-112.86操作系統和LPC17Xx V2.0固件庫(還有的基于ulP1.0以態網協議棧),產品運行穩定,芯片級操作也十分方便(畢竟是基于固件庫操作,不用管那些復雜的寄存器),在官網看到不知何時出了UCOS-I1-V2.91,于是準備應用本版本編寫今后的程序,移植時,有意留心寫下這篇移植步驟,希望對初學者有幫助。一、移植前的準備工作下載所需文件:1、在LPCWARE官網下載LPC175x 6x CMSIS-Compliant Standard Peripheral Firmware Driver Library(LPC175X,LPC176x固件驅動庫),下載地址鏈接:http://www.lpcware.com/content/nxpfile/lpc175x6x-cmsis-compliant-standard-perip heral-firmware-driver-library-keil-iar-gnu進入網址選擇lpc175x6xcmsis-driver_library.zip下載pctis su amas aer baryp2i56tes(也可以在NXP官網下載,但本人去年下載的固件庫編譯時出現N多警告,看E不爽,自己改又不怕改出問題)2、在UCOS-1l官網下載UCOS-Il-V291源碼(上面描述為2.89,但實際內核為2.91),下載地址鏈接http://micrium.com/page/downloads/source_code進入網址選擇UC/os-11下載,如下
上傳時間: 2022-06-26
上傳用戶:zhanglei193
AR0231AT7C00XUEA0-DRBR(RGB濾光)安森美半導體推出采用突破性減少LED閃爍 (LFM)技術的新的230萬像素CMOS圖像傳感器樣品AR0231AT,為汽車先進駕駛輔助系統(ADAS)應用確立了一個新基準。新器件能捕獲1080p高動態范圍(HDR)視頻,還具備支持汽車安全完整性等級B(ASIL B)的特性。LFM技術(專利申請中)消除交通信號燈和汽車LED照明的高頻LED閃爍,令交通信號閱讀算法能于所有光照條件下工作。AR0231AT具有1/2.7英寸(6.82 mm)光學格式和1928(水平) x 1208(垂直)有源像素陣列。它采用最新的3.0微米背照式(BSI)像素及安森美半導體的DR-Pix?技術,提供雙轉換增益以在所有光照條件下提升性能。它以線性、HDR或LFM模式捕獲圖像,并提供模式間的幀到幀情境切換。 AR0231AT提供達4重曝光的HDR,以出色的噪聲性能捕獲超過120dB的動態范圍。AR0231AT能同步支持多個攝相機,以易于在汽車應用中實現多個傳感器節點,和通過一個簡單的雙線串行接口實現用戶可編程性。它還有多個數據接口,包括MIPI(移動產業處理器接口)、并行和HiSPi(高速串行像素接口)。其它關鍵特性還包括可選自動化或用戶控制的黑電平控制,支持擴頻時鐘輸入和提供多色濾波陣列選擇。封裝和現狀:AR0231AT采用11 mm x 10 mm iBGA-121封裝,現提供工程樣品。工作溫度范圍為-40℃至105℃(環境溫度),將完全通過AEC-Q100認證。
標簽: 圖像傳感器
上傳時間: 2022-06-27
上傳用戶:XuVshu
我們設計了一種基于UC/OS和emWin具有良好用戶界面的手表。系統以STM32為主控單元,通過MPU6050(MPU6050數據手冊)模塊與帶有創新的濾波算法實現計步功能;通過藍牙模塊與安卓上位機進行雙向通信,實現發生危情通過手表按鍵觸發即可給指定號碼發出實時更新地圖信息的短信等功能。另外,系統具有手勢識別實現手抬起看表時屏幕自動亮,放下時屏幕暗等多項人性化的功能。
上傳時間: 2022-07-02
上傳用戶: