- 博客(23)
- 收藏
- 关注
原创 运算放大器的计算
虚短是指在理想运算放大器的负反馈条件下,由于运算放大器的开环增益非常高(理想情况下为无穷大),即使输入端(同相端和反相端)之间的电压差非常小(理想情况下为零),也能产生足够的输出电压。因此,在这种情况下,我们可以假设运算放大器的两个输入端之间的电压是相等的,即它们之间的电压差是“短路”的,这就是所谓的“虚短”。因此,我们可以假设运算放大器的输入端是“断路”的,即没有电流流入或流出运算放大器的输入端,这就是所谓的“虚断”。所以放大器2端的入口电压等于1端入口电压等于Vin。
2023-11-05 13:27:15
151
原创 C#中实现简单的参数存储
封装目的:封装后的读函数比原函数入口参数更小,操作更便捷 封装后的写函数比原函数明确了读写失败的BOOL类型返回值。前提:小文件,参数配置类信息 ini类型保存。1.调用存储相关的API。
2023-10-11 15:58:30
536
原创 C#中添加自制控件
下面函数中涉及一些计算过程,其实是由于窗体绘图默认原点是左上角,而我们习惯的坐标系原点的左下角,里面的计算过程是为了将我们输入的位置坐标进行转换的过程,无需过分纠结,理解原理,this.Height.,this.with为实际的绘图画布大小。接下来重写的OnPaint函数是真正的绘制过程,每次用户改变属性信息时,由于执行了 this.Invalidate();以上信息都是属性信息,不涉及逻辑,属于为了实现自己绘制目的而定义的成员变量。控件属性:(显示在加载进入工具箱后的属性界面)2.进入代码编辑页面。
2023-10-08 17:38:46
2547
原创 C#中的委托调用(显示委托订阅式)
采用订阅的方式,更能体现委托功能的发布理念,发布一次事件,所有的订阅者都能收到信息,但是上面的步骤略显繁琐,优化后采用隐式调用,方法如下。1.前篇文章采用最直接的方式,不使用事件发布订阅机制,直接绑定,本篇将使用委托的订阅机制来实现和上一篇完全一样的功能。只需重新定义 EVENT 类型就ok,剩下的不用管,系统会自动实现委托机制。
2023-08-26 15:10:24
148
原创 C#中的委托调用(委托绑定式)
一个可以被调用的委托机制就完成了(发布委托),例子很简单,就是通过委托Openfrom来打开不同的页面,入口参数是页面的名字,实现这个功能的方法有很多,但是思想大于方法,面向对象编程委托机制还是要学的。执行Openfrom("集中监控")时通过对OpenFromMethod(string FrmName)1.采用最直接的方式,不使用事件发布订阅机制,直接绑定。Openfrom("集中监控");
2023-08-26 08:39:29
180
原创 减速比是如何减小转动惯量的
平面运动是我们常见的,F=MA,F力,M质量,A加速度 ,在旋转运动中T=J*dw/dt ,T是转矩,J是转动惯量,w是角速度,将转动惯量可以理解为平面运动中的质量属性。所以采用减速机构来放大了转动惯量,由于减速机构的存在减小了对于电机本身转动惯量的需求,这个角度看。转动惯量是旋转机构所拥有的属性,就像谈运动物体离不开质量一样,所以没有什么转动惯量越大越好或者越小越好的原则,没有转动惯量就没有旋转运动!J一般描述为旋转轴在旋转质量上的积分,也就是J受到旋转体的质量和形状的影响!
2023-04-26 11:48:54
1569
原创 搞清电机反电势波形产生原因
可以假想手里拿着一个铁棒,绕着一个圆柱永磁体做圆周运动,理想情况下,铁棒方向始终垂直于磁场方向,所以电势E=BLV,理想条件下,此时反电势波形为矩形波,由于充磁不均匀,永磁体形状等原因常见为梯形波。B L V 磁生电的原理,有导体在做有效的切割磁感线运动,那么该导体就会产生电势,该电势一般被认为是反电势。当永磁体为平行充磁时:磁场方向不在沿圆周径向,而是平行向上,此时导体运动到不同位置,便会产生不同的反电势。此时能够产生有效切割的磁场B为B*sin(角度) ,E = B*sin(角度)*L*V。
2023-03-25 16:59:56
2707
原创 rt_thread中的任务间同步及通信
学习目标:任务间同步及通信学习内容:在多任务的实时系统中,一项工作的完成往往需要多个任务协调的方式共同完成。对于操作/访问同一块区域,称之为临界区。任务的同步方式有很多种,但其核心思想都是在访问临界区时只允许一个或一类任务运行。关闭中断:关闭和打开中断接口由两个函数完成:rt_base_t rt_hw_interrupt_disable(void);rt_base_t rt_hw_interrupt_enable(rt_base_t level); level 可以...
2021-04-26 18:15:54
709
原创 rt-thread的软件结构之定时器
学习目标:学习rt_thread中定时器的相关知识学习内容:操作系统中,其核心的节拍时钟仍然是基于硬件时钟的基础上。可以将其称之为节拍。所谓的软件定时器必须以该节拍为基本单位。rt_thread的定时器中存在着两种的定时机制,一种是单次的触发定时器,该定时器触发后,只会触发一次的定时器时间。另外一种是周期性的触发定时器事件,那就顾名思义了。在rt_thread的定时器系统中,维护着两个重要的全局变量:1.当前系统经过的tick时间的rt_tick(当硬件定时器中断来临时rt_ti
2021-04-24 13:47:28
478
原创 rt-thread的软件结构之线程调度与管理
学习目标:学习内容:rt-thread的软件结构1.组件component:shell command 命令行指令 Device FS 设备虚拟文件系统 POSIX 可移植操作系统接口 Lwlp: tcp / ip栈 ...
2021-04-22 20:27:13
509
原创 图解rt_hw_stack_init
/******************************************************************************************* 函数实现 开辟栈空间******************************************************************************************//*线程栈的初始化*/rt_uint8_t *rt_.
2021-02-18 21:26:06
739
原创 详细分析rt_thread_startup(&idle );
分析线程启动函数,该函数的主要作用为:启动一个线程并将其放到系统的就绪列表中。rt_err_t rt_thread_startup(rt_thread_t thread){ /*设置当前优先级为初始优先级*/ thread->current_priority = thread->init_priority ; (1) thread->number_mask = 1L << thread->current_priority ;(2) /*改变线程
2021-02-18 09:53:41
1525
原创 详细分析一个rt_thread_init的过程
以空闲线程为例1.定义点数据存在内存的静态空间/*空闲线程的线程控制块*/struct rt_thread idle;rt_ubase_t rt_idletask_ctr=0; //空闲时将要自加的零碎extern rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX]; //线程优先级链表static rt_uint8_t rt_thread_stack[IDL...
2021-02-17 10:03:31
3061
2
原创 _OBJ_CONTAINER_LIST_INIT(c)的理解
说的在具体点就是:#define _OBJ_CONTAINER_LIST_INIT(c) \ {&(rt_object_container[c].object_list),&(rt_object_container[c].object_list)}(1)式(1)让人感到迷惑主要是因为&(rt_object_container[c].object_list)命令连续出现两次首先来到_OBJ_CONTAINER_LIST_INIT(c)调用的地方:sta...
2021-02-16 11:58:55
543
原创 空闲线程与阻塞延时的实现
学习目标:RT-THHRAD学习内容:在rt-thread的系统中,研究空闲线程与阻塞延时的实现学习产出:提示:这里统计学习计划的总量想要实现空闲线程,并进行阻塞延时,则是需要进行滴答定时器的设计,可以通过滴答定时器进行的延时计算。 /*Systick的中断频率设置*/ SysTick_Config(SystemCoreClock /RT_TICK_PER_SECOND);于是在SYSTick_Handler(void)中执行:void SysTi...
2021-02-03 16:17:07
295
原创 stm32寄存器学习01
学习目标:掌握应用寄存器完成stm32的GPIO操作1.使能enable2 模式选择modle3 方向 dir4读写 r/w学习内容:从学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍2、CSDN 技术博客 3 篇3、 学习的 vlog 视频 1 个...
2020-11-22 17:40:06
352
原创 stm32关于can线的双机通信实验
学习目标:can实现stm32双机通信学习内容:can是一种异步通信,具有CAN—HIGH和CAN—LOW两条信号线,其差分输出的信号模式,提高了其传递的抗干扰性能。闭环闭环网络也是高速网络,有效的传递距离为40m。开环网络也是低速网络,有效距离可达1km。一个can通信节点包含两大部分,分别是CAN控制器和CAN收发器。CAN控制器: 实现协议底层以及数据链路层,生成CAN帧,填充,校验,应答,执行冲突处理等诸多的任务。CAN...
2020-11-17 10:15:35
6599
1
原创 潘多拉 rt thread lcd
学习目标:掌握正点原子潘多拉板载LCD的用法,熟悉IIC和SPI的用法及其区别学习内容:1.LCD屏幕 潘多拉开发板板载LCD屏幕大小1.3寸,分辨率240*240,色彩深度16bit,使用ST7789V2液晶控制器,小巧细腻很喜欢。潘多拉开发板板载的lcd硬件原理图如上所示,因为显示问题,所以只是写操作 ,不用读取。因而用到的引脚为:屏幕美照2.学会使用st7789驱动,芯片手册臭又长,网上有好多可以借鉴的例子。这里定义了控制引脚的高低电平控制#define LC
2020-08-27 17:36:54
1286
原创 GPIO初探1
将进行对于F28335的普通IO口进行简单介绍,重点在于如何利用MATLAB工具实现对于DSP的硬件编程,从而对于GPIO口的控制。首先其普通IO分为三大组,分别为A:gpio0到gpio31,B:gpio32到gpio63,C:gpio64到gpio83.可以通过GPXDIR寄存器来配置IO接口方向,GPXQUAL来对输入信号进行量化限制,从而消除数字量引脚的噪声干扰。对于IO口...
2018-06-01 15:27:53
986
原创 基于模式设计之软件环境的搭建
博主是技术小白,借助CSDN平台来做下学习点滴的记录。大牛勿喷,如果能给其他学习者带来些许帮助,不胜荣幸。 最近一直在借助MATLAB平台来进行算法设计,然后通过模型设计方法生成DSP(TMS320F28335系列)可执行代码,进行硬件实现。对于执行软件,以前用的是MATLAB2014和CCS6.0,缺点是前期的编译环境参数设计过于麻烦,并且不能以工程形式生成ccs的工程,经...
2018-05-13 18:05:15
358
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人