rtos编程_rtd编程
从事linux 下c开发,要学哪些知识?一下每个学习阶段的书籍,越详细越好。
(setq #l1 (getdist @p1 (strcat "应用开发工程师 驱动工程师 内核工程师 硬件工程师 测试工程师 采购工程师 产品质量工程师......
rtos编程_rtd编程
rtos编程_rtd编程
《面向 AWorks 框架与接口的编程——基于 C++》(适用于 ARM9 以上内核)
几本关于Linux和arm的书:
※※S3C2410完全开发流程,Linux系统移植,makefile-中文教程,Linux设备驱动程序第三版,Linux-c函数库参考手册。
※※开发所涉及到的基础课程
Uart实验,SPI实验等一些总线实验。涉及:接口技术《面向 AWorks 框架与接口的编程——基于 Linux》(适用于 ARM9 以上内核)(计算机组成)
网络实验:涉及:计算机网络,作系统原理。
RTOS实验: 涉及:作系统原理。
LED按键实验 涉及:接口技术,数字电路。
对于C语言,数据结构,汇编语言等课程却是各个实验都会涉及的。
我今年刚毕业,现在从事linux C开发,我给你说下我们公司的情况吧!
大概可以分两种,应用开发和底层开发。
应用的话和Linux相关的就是你编程时经常用到的系统函数,再就是很多协议的实现已经有了基于linux的开源代码,然后就和linux没多少关系了,当然肯定要求你对Linux系统一些基本理论要有了解。更多的是业务上的了,跟各个公司所处的行业相关,需要了解跟这个行业相关的一些协议了。
如果做底层开发,就和Linux有很大关系了。和系统启动器(REDBOOT/UBOOT)、内核、文件系统、驱动这几方面都有关系。大一点的公司分工明确,做内核就是内核,做驱动就是驱动,但小公司往往要求员工要多会一些东西。而且牛叉的架构师必须对各个方面都有了解。
如果是底层的话,可以先看《嵌入式Linux应用开发完全手册》入门,入门后我也不知道该怎么学了。
希望能帮到你,我有《嵌入式Linux应用开发完全手册》的PDF,luoops@sina如果需要email我!
周立功新书《面向AMetal框架与接口的编程(上)》?
可编程计数器陈列(pcm、pwm),5通道书本前言
产品的 BOM 成本很低,而毛利又很高,为何很多上市公司的年利润却买不起一套房?房子到底被谁买走了,这个问题值得我们反思!
1、大胆的推测
基于此,我们不妨做一个大胆的设。虽然 PCF85063、RX8025T 和 DS1302 来自不同的半导体的公司,但其共性都是 RTC 实时日历时钟芯片,即可高度抽象共用相同的驱动接口,其异性用特殊的驱动接口应对。虽然 FreeRTOS 或μC/OS-II 或 sysBIOS、Linux、Windows 各不相同,但它们都是 OS,多线程、信号量、消息、邮箱、队列等是其特有的共性,显然 QT 和 emWin 同样可以高度抽象为 GUI 框架。也就是说,不管什么 MCU,也不管是否使用作系统,只要修改相应的头文件,即可复用应用代码,这就是平台的雏形。
2、核心域与非核心域
非核心域就是别人的领域,比如,底层驱动、作系统和组件,即便你有一些优势,那也是暂时的,竞争对手也能通过其它渠道获得。虽然非核心域的改进是必要的,但不充分,还是要在核心域上深入挖掘,让竞争对手无法轻易从第三方获得。因为在核心域上深入挖掘,达到基于核心域的复用,这是获得和保持竞争力的根本手段。
要达到基于核心域的复用,有必要将核心域和非核心域分开考虑。因为过早地将各个领域的知识混杂,会增加不必要的负担,从而导致开发人员腾不出脑力思考核心域中更深刻的问题。由于待解决的问题的规模一旦变大,而人脑的容量和运算能力有限,因此必须分而治之,因为核心域与非核心域的知识都是的。
3、思维异决定收益
Yourdon 和 Constantine 在《结构化设计》一书中,将经济学作为软件设计的底层驱动力,软件设计应该致力于降低整体成本。人们发现软件的维护成本远远高于它的初始成本,因为理解现有代码需要花费时间,而且容易出错。同时改动之后,还要进行测试和部署。Apple之所以成为全球钱的手机公司,关键在于产品的性能超越了用户的预期,且因为大量可重用的核心领域知识,综合成本做到了。
更多的时候,程序员不是在编码,而是在阅读程序。由于阅读程序需要从细节和概念上理解,因此修改程序的投入会远远大于最初编程的投入。基于这样的共识,让我们心的一系列事情,需要不断地而且Linux系统提供了C语言的编辑器gcc,你可以在系统上写完代码之后,在系统上编译并运行,这样,在学习C语言的阶段你也熟悉了Linux系统的使用。思考和总结使之可以重用,这就是方的源起。
通过财务数据分析,由于早期决策失误和缺乏科学的软件工程方法,我们开发了一些周期长、技术难度大且回报率极低的产品,不仅软件难以重用,而且扩展和维护难度很大,从而导致开发成本居高不下。
显而易见,从软件开发来看,软件工程与计算机科学是完全不同的两个领域的知识。其主要区别在于人,因为软件开发是以人为中心的过程。如果考虑人的因素,软件工程更接近经济学,而非计算机科学。如果不改变思维方式,则很难开发出既好卖且成本低的产品。
虽然大多数开发者都很勤奋,但其奋斗目标不是企业和个人收益化,而是以学习基础技术为乐趣,极少与市场人员和用户交流,不注重提升个人挖掘用户需求的创造力,而是将精力用错了地方,这是很多人一辈子也没有认识到的深刻问题。只是表面地叹息自己怀才不遇,甚至将自己失败的推给他人。由此可见,人与人之间的别不在于知识和经验,而是思维方面的异决定了每个人的未来。
4、解决之道
代码的优劣不仅直接决定了软件的质量,还将直接影响软件成本。软件成本是由开发成本和维护成本组成的,而维护成本却远高于开发成本,蛮力开发的现象比比皆是,大量来之不易的资金被无声无息地吞没,整个的资源浪费。
为何不将复杂的技术高度抽象呢?如果实现就能做到让专业的人做专业的事,AWorks就是在这样的背景下诞生的。由于其中融入了更多的软件工程技术方法,因此就能做到将程序员从非核心域中释放出来聚焦于核心竞争力。
由于 AWorks 制定了统一的接口规范,并对各种微处理器内置的功能部件与外围器件进行了高度的抽象,因此无论你选用的是 ARM 还是 DSP,通过“按需定制”的外设驱动软件和相关组件,以高度复用的软件设计原则和只针对接口编程的思想为前提,则应用软件均可实现“一次编程、终生使用和跨平台”。基于此,进一步扩大了 AWorks 使用范围,又发展出了代码更小的 AMetal,AWorks 能给你带来的价值就是不需要重新发明轮子。
5、丛书
《面(if (> #th 0) (setq #ar (atan (/ #lh #th))) )向AMetal框架与接口的编程(上)》是《嵌入式软件工程方法与实践丛书》中的套第二本书,丛书共含四套:
套
《程序设计与数据结构》
《面向 AMetal 框架与接口的编程》(上)
第二套
《面向 AWorks 框架与接口的编程》(适用于各种 MCU)
第三套
第四套
《C++现代程序设计》
还在写作中的内容包括测试与持续集成,书籍均由周立功团队从理论知识到实践应用的精华汇编,将来会陆续与大家见面,共同学习与探讨。
嵌入式开发要学哪些课程?
void func1(char a, char b,...) reentrant嵌入式开发的学习其实并没有那么难,只要了解学习的体系,掌握正确的学习方法,学习起来并不难。来讲一下嵌入式开发都要学些啥!
11嵌入式开发的主要学习内容:
C,Ja核心编程:c语言核心编程,Ja核心编程;
Linux核心作与算法:Linux系统使用,Linux-c编程核心技术,数据结构,Linux-c编程精髓;
核心作与算法:Linux系统编程,Linux网络编程核心技术,UI编程,Ja核心编程,安卓核心技术;
ARM+Linux底层开发:数字电路,ARM编程核心,Linux系统开发,嵌入式Linux驱动开发;
大型项目实践:每期安排各类型真实的项目
互联网行业目前还是最热门的行业,学习IT技能之后足够是有机会进入腾讯、阿里、等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有IT专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,建议实地考察对比一下。
祝你学有所成,望采纳。
请点击输入描述
嵌入式开发学习课程主要分为六个阶段。嵌入式开发培训粤嵌,嵌入式开发课程是粤嵌的+热门学科!是国内众多嵌入式学习者的学习基地!粤嵌一众架构师级大牛导师汇聚,成就专业讲师团队。真正的技术精英、良师益友!
目前粤嵌已对课程进行多次迭代升级,四大创新:
嵌入式开发要学哪些课程?嵌入式用一句话概括,就是写程序,用软件控制硬件。嵌入式的应用领域非常多。智能家居,智能农业,智能医疗等等都属于嵌入式。那么嵌入式该怎么学习呢?
1.C语言
自上而下的学习首先是写代码,写用户的应用程序。每种语言的使用目的是不同的,嵌入式的语言是C语言。
所以首先要学习C语言的基本语法,C库提供了大量的函数,我们可以调用以实现一些功能。所以还要熟悉C库的常用函数。
C语言一定要学好,它是没有使用过周立功的单片机仿真系统!基础。Linux内核大部分也是用C语言实现的。
2.Linux系统的基本使用
3.数据结构
而且后面学习内核的过程中,内核中也是有大量的链表之类的数据结构的。
4.内核
此时,我们要往下开始系统内核的学习。Linux的内核包括以下几个部分:进程管理、内存管理、网络堆栈、虚拟文件系统、设备驱动等。
内核是一个系统最重要的部件。想要真正的认识它需要你一步一步的积累。这个阶段大家先依次学习文件IO、进程线程、网络编程。
设备驱动
驱动是硬件和应用程序之间的桥梁,如果一个应用程序要作硬件,必须要有驱动。
一句话总结:驱动就是根据相应的硬件,写出驱动程序作为调用接口提供给用户,用户使用该接口就可实现控制硬件的目的。
其次,在驱动的学习中,我们会慢慢学习内核。内核的各种模块,内核源码等等。
硬件简述
对于一个嵌入式工程师来说,能够看懂电路图即可。即只需要掌握基本的电路知识,看懂电路图。至于开发板的画图、布线、腐蚀、焊接等步骤,可以不必深入研究。这些技能是属于硬件工程师们的要求。
另外,一个程序员双语很重要,你学习了面向过程的C语言,大家掌握一门面向对象的语言,可以是c++、ja或者python都可。
其次,你要单独实现一个完整的项目,UI界面部分必不可少。做页面可以用qt、可以用网页、也可以用手机端。这可以使你自己做的项目更加完善。
嵌入式开发要学习的课程,大概就是以上这些。
周立功那个Small rtos51作系统怎么处理Keil c51函数的局部变量在固定位置的?按理说这样的变量得不到保
无论你选择什么芯片和任何 OS,比如,Linux 和其它任何 RTOS,只要 AWorks 支持它,就可以在目标板上实现跨平台运行。因为无论什么 OS,它只是 AWorks 的一个组件,针对不同的 OS,AWorks 都会提供相应的适配器,那么所有的组件都可以根据需要更换。all rtos51的作者是陈明计,在周立功的公司工作。
(command "_.pline" @p1 @p2 @p3 "c")被多个任务调用的功能函数一般应该是可重入的,而keilC51默认的编译方式是把局部变量分配在固定位置,这样的函数是不可重入的,keil为了解决函数的重入问题,特别设计了一个关键字reentrant,如果想把某个函数定义为可重入函数,可用如下方法:
{...当你学完了C语言的基本语法,此时你的c语言水平只是入门阶段。你还要学习一门没有新知识的课程----数据结构。这门课程就是大量的使用指针、数组、结构体、函数。经过这个阶段你才能算是掌握了C语言。.
}这样定义出来的函数的局部变量是保存在工作寄存器和“模拟栈”中的,在使用all rtos51的时候,定义函数时加上reentrant的就OK了。当然,只加上reentrant关键字还不能保证函数就是可重入的,在编程时还要注意使用共享资源(如全局变量、外设等)的互斥作。
仿真器,自己做个就好了
嵌入式软件开发和软件开发有区别吗
◆ 嵌入式ARM处理器体系结构及编程训练作系统不一样追求代码复用和跨平台,这是开发者梦寐以求的奋斗目标,但现实很残酷,几乎无法成为现实。原因何在?MCU 有 M0、M4、M7、ARM9、A5、A7、A8 内核、DSP......有些项目不需要作系统,有些项目可能选择 FreeRTOS 或μC/OS-II 或 sysBIOS,另一些项目可能选择 Linux 或 Windows,因为不同的半导体公司支持的平台不一样。,嵌入式软件开发属于软件开发的一种。
嵌入式软件开发主要针对计算能力有限的CPU进行的软件开发,比如INTEL的CPU芯片时钟频率可以达到1G HZ,虽然INTEL的CPU运算能力强大,但是体积大,发热大,不适合使用在某些场合,这个时候就要使用一些体积小,功耗低,运算能力有限的专用CPU,比如手机上使用的CPU处理器,在这种CPU上运行的作系统就是嵌入式作系统,这些作系统占用比较小的三条边长无法绘制有效的三角形!")硬件资源,但是却有相对较高的执行调度效率。
嵌入于宿主设备,智能地完成宿主设备功能的计算机就是嵌入式计算机,或简称为嵌入式。嵌入式计算机的构成:可以是单片的微(MC-micro-controller),在我国习惯于称做单片机;也可以是由微处理器(MP-microprocessor)另加存储器及外部设备构成;还可以在MC/MP的基础上附加数字信号处理器(DSP)核心部件,构成多核MP/MC。
新一代嵌入式计算机的主要特征:是继承了整个PC机时期的技术成就,特别是进入90年代后的全球万维网(Web)技术(产品有可接入万维网的手持式PDA设备等)和多媒体技术(产品有高质量数字音响、数字视盘播放器,数码静态相机、数码视频等等)。这类嵌入式的目标是想把桌面PC机上成熟的技术拆解下来,放入手持设备或移动设备,供用户随时随地进行消费。全球网中行之有效的众多通信协议,多媒体的MP3、JPEG、MPEG等所采用的标准数据格式及各种库函数都使用32位格式和32位的编程软件,所以嵌入式也注定要使用32位的微处理器。
为顺应形势发展的需要,32位手持设备用的嵌入式作系统应运而生,的有Windows CE、Epoch、 Palm OS等等,可见今日嵌入式的立点水平是很高的。
新一代嵌入式主要面向手持或移动消费类设备,电池供电和低价位是重要考虑因素,这就从根本上决定了它不可能照搬PC机上原来使用的微处理器。下面先介绍嵌入式32位微处理器的技术进步,然后再举一些新型嵌入式微处理器的实例,使读者对新一代嵌入式有一个较清晰的认识。
由上述可见,当前嵌入式所用MP多是32位RISC DSP双核或RISC/DSP单核结构。过去比较的RISC生产厂家起着基石作用。许多新兴的嵌入式厂家购买他们的RISC专利嫁接到自己的DSP核上。一些的生产CISC微处理器的厂家不甘心丢失嵌入式市场,也纷纷向RISC及DSP靠拢。
从1981年Ready System发展了世界上第1个商业嵌入式实时内核(VRTX32),到今天已经有近20年的历史。20世纪80年代的产品还只支持一些16位的微处理器,如68k,8086等。这时候的RTOS还只有内核,以销售二进制代码为主。当时的产品除VRTX外,还有IPI公司的MTOS和80年代末ISI公司的PSOS。产品主要用于军事和电信设备。进入20世纪90年代,现代作系统的设计思想,如微内核设计技术和模块化设计思想,开始渗入RTOS领域。老牌的RTOS厂家如Ready System(在1995年与Microtec Research合并),也推出新一代的VRTXsa实时内核,新一代的RTOS厂家Windriver推出了Vxwork。另外在这个时期,各家公司都有力求摆脱完全依赖第三方工具的制约,而通过自己收购、授权或使用免费工具链的方式,组成1套完整的开发环境。例如,ISI公司的Prit、的Tornado(Windriver)和老牌的Spectra(VRTX开发系统)等。
进入20世纪90年代中期,互联网之风在北美日渐风行。网络设备制造商、终端产品制造商都要求RTOS有网络和图形界面的功能。为了方便使用大量现存的软件代码,他们希望RTOS厂家都支持标准的API,如POSIX, Win32等,并希望RTOS的开发环境与他们已经熟悉的UNIX,Windows一致。这个时期代表性的产品有Vxwork,QNX, Lynx和WinCE等。
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
当然有,嵌入式软件开发主要是开发底层,与芯片交互相关的,用的基本是C语言,熟悉底层芯片架构。软件开发通常指的是开发电脑端手机端APP或者一些大型网站前后台系统,主要用Ja等语言,不管底层驱动等。
嵌入式实时作系统μC/OS-2的作者
《面向对象的分析与设计对于教材:本人曾熟悉使用过TI24系列各种型号,市面上也有这系列的开发板,功能不少,的确适合初学者使用。2812也可以,性能在C2000系列中好一些。如果作者真是对DSP一点都不了解的话,我建议作者还是看看C2000系列的吧》Jean J.Labrosse,1957年生于加拿大蒙特利尔。自幼酷爱除非你在写8位机这方面有很特殊的技艺,你可以留在8位机编程的思想上,否则还是按实际需要和主流方式来做事才是正道。因为做产品,时间成本是重大因素,适时推出了库函数的目的就在于缩短开发的时间和难度。除非你是做学术、做研究。电子学,着迷于迪斯科舞厅中的灯光和音响系统。作为业余嗜好,大学读书期间曾开过一家名为:Mephistronique的公司。大学3年级时,开始涉足微处理器的精彩世界。从In8080开始,然后是.MOTOROIA6800,接着是Zilog的Z-80,并将它们应用于其业余产品的设计。1983年获电子工程硕士学位后,在一家医用电子企业工作过两年,设计过一些基于微处理器的系统,用汇编语言编程。后到一家制造往复式发动机的公司工作,学会并开始在产品设计中使用C语言编程。4年后转到Dylqalco Control公司工作,开始使用RTOS,并发现KIOS中的一处隐患,从而萌生了用业余时间自己写RTOC熔的想法。在1992年5月和6月期Embedded SystemProgramming 杂志上发表了最初的RTOS,名为μCOS。到1992年底,写成了介绍μC/OS的书,1999年出版了介绍μC/OS-Ⅱ的书,该书第2版于2002年出版。2000年还出版了.Embedded System Buliding Block一书。
嵌入式实时作系统μC/OS-2的编辑
所以单单应用开发可以看下《linux程序设计》《UNIX环境高级编程》《UNIX网络编程》。《嵌入式实时作系( xx xx)统μC/OS-2(第2版)》介绍μC/OS-Ⅱ的设计与实现,讲解多任务实时系统的基本原理。读者可以学到内核结构、调度算法、任务切换、时间管理、任务问通信与同步及存储空问的动态分配等知识。与《嵌入式实时作系统μC/OS-2(第2版)》的前一版本相比,书中程序的解释全部重新写过,给出了更详尽的说明,以便于理解;系统功能函数的描述从l章扩充到了6章,其中2章用以描述新增加的功能函数:互斥型信号量(mutex)和标志组函数;重写了程序移植指南,新增加了移植过程中的调试技巧等内容;编程规约函数以及变量等的速查手册也编排在附录中。
从事多年嵌入式软件开发,我想说从编程角度来说别不大,最本质的区别在于嵌入式你需要了解更多的跟硬件设备相关的知识, 一般跟底层硬件驱动打交道会多些,当然嵌入式软件也有偏应用层的开发,这个可以根据自己兴趣选择。希望回答能起到帮助!请问STM32怎么才能并行作低八位的IO口或高八位的IO口?
GPIOADC实验,涉及:模拟电路,数字电路。A->ODR&=~0x01FF; //清零PA0~PA8建议还是用库函数。
嵌入式软件开发是软件开发中的一个分支库函数是发布的,是经过大量验证的,极少出BUG,可减少自己一点点从底层寄存器架构时产生的系统性不好和出错。
使用库函数可减少大量的对底层的作,能节约很多精力。与其一位一位的去数寄存器的位,不如把时间花在如何提高代码质量,以及学习更高级的编程思想,比如RTOS。这对于提高薪资收入有的帮助。
现在绝大多数公司都是使用库函数的,而你只会使用底层寄存器的写法,会阻碍你和别人的对接,进一步的也会降低你进入先进公司的机会。
8位的单片机现在已经处于淘汰状态,前几日我看到ST公司发布会的介绍,STM32的出货量去年一年已经达到2亿片,32位处理器淘汰8位的已经是大势所趋。所以为了不让将来处于被动,应该积极的学习先进的知识和方法,而不是固步自封的让自己守在8位机编程那种,对寄存器一位一位的作方式上。
以下是我用库函数写的一个并口作,单片机型号:STM32F1系列
可以来简单的,比如你要向PA写9位数据z,那就这样:
GPIOA->ODR|=z;
这是标准位作,可惜很多人都不知道。
GPIOA->BRR=0x01FF; //清零PA0~8
GPIOA->BSRR=z;
ODR寄存器不能进行位作,而BRSS寄存器则可以进行位作。ODR我还没用过,大多都是用BRSS。给你举俩例子说说BRSS的用法吧。
作PA9为1:GPIOA->BRSS=1<<9;
作PA0为1:GPIO1->BRSS=1<<0;
/gpio先配置为输出/
void GPIOA_WriteLSB8bits(char data)
{unsigned short buf;
buf = GPIOA->ODR;
buf = (buf & 0xff00) | data;
GPIOA->ODR = buf;
}
求研究生嵌入式方向学习的课程
);;数值平方网上的资料,仅供参考。。。
----------------------------
自学(if (null #os1) (setq #os1 300.0) )嵌入式确实不大现实(当然也不是说没有这个可能),毕竟嵌入式难度也是比较大的。
嵌入式的应用主要是几个方向,
一是系统开发:侧重开发环境搭建、内核原理、交叉编译等;
二是嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用;
三是底层驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。
不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱动靠。
嵌入式课程的目标,想自学完课程,要掌握以下知识点:
◆ Linux命令,工具和C编程Small rtos51 好像不是周立功的 是网上的不知道哪个高手做出来的 而且keil本身也有自己的作系统 rtx51基础 ◆ 嵌入式Linux C语言强化
◆ 嵌入式Linux内核环境搭建和编程训练
◆ 嵌入式Linux驱动理论及驱动程序开发训练
◆ Android体系结构和系统移植 ◆ 嵌入式ARM Linux项目实践和训练
上面这个嵌入式课程信息是从东方赛富3G嵌入式学院网站COPY下来的,仅供参考;呵呵,若感兴趣想进一步了解的话,只有去网上咨询或实地考察了。
在Auto CAD中关于VBA或Auto LISP进行编程,画出三角形。
(defun c:3jx (/ @os4 #os #cm @p1 #os1 #os2 #os3 #l1 #l2 #l3 #lh #th #ar)
(setq #cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null @os4) (setq @os4 '(500.0 500.0)) )
(setq @p1 (getpoint "
请输入三角形左下角的点或默认坐标点(500.0,500.0)"))
(if (null @p1) (setq @p1 @os4) (setq @os4 @p1) )
(if (null #os2) (setq #os2 400.0) )
(if (null #os3) (setq #o《面向对象的分析与设计》s3 500.0) )
请输入三角形底边长度:<" (rtos #os1 2) ">")))
(setq #l3 (getdist @p1 (strcat "
请输入三角形右边直线的长度:<" (rtos #os3 2) ">")))
(if (null #l1) (setq #l1 #os1) (set◆ Android应用研究和系统开发q #os1 #l1) )
(if (null #l2) (setq #l2 #os2) (setq #os2 #l2) )
(if (null #l3) (setq #l3 #os3) (setq #os3 #l3) )
(if (and (> (+ #l1 #l2)) (> (+ #l2 #l3) #l1) (> (+ #l1 #l3) #l2))
(progn
(setq #lh (/ (area3 #l1 #l2 #l3) #l1 0.5))
(setq #th (sqrt (- (sqr #l2) (sqr #lh))))
(if (= #th 0) (setq #ar (/ pi 2)) )
(setq #lh (-(sqr #l3) (+ (sqr #l1) (sqr #l2))))
(if (> #lh 0) (setq #ar (- pi #ar)) )
(setq @p2 (polar @p1 #ar #l2))
(setq @p3 (polar @p1 0 #l1))
(setq #os (getvar "oode"))
(setvar "oode" 0)
(setvar "oode" #os)
)(princ "
)(setvar "cmdecho" #cm)
(princ)
)(prompt "
《C:3JX.lsp》根据三边画三角形")
(prin1)
(defun sqr (xx)
(defun area3 (a b c)
(sqrt ( ( 0.5 (+ a b c)) (- ( 0.5 (+ a b c)) a) (- ( 0.5 (+ a b c)) b) (- ( 0.5 (+ a b c)) c)))
(setq #l2 (getdist @p1 (strcat ");;三角形三边求面积
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。