实验源代码 //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
上传用户: