![](https://img-blog.csdnimg.cn/20190831170445624.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
应用C
文章平均质量分 90
单眼皮的根号3
开源+编程+乐趣,尝试分享开源编程的乐趣
微信:abc690550753
邮箱:hxj_e_mail@163.com
企鹅:690550753(不常用)
展开
-
【应用C】C语言实现可配置带回调函数的蜂鸣器驱动
文章目录01 - Buzzer.h02 - Buzzer.c 如果你需要用蜂鸣器制造一段有节奏音乐的需求,则可以移植代码进行使用:代码所占code少于0.5K可移植性高,只需要提供底层PWM_Set()和配置对应音乐节奏节点注意:系统需要存在一个至少为10ms的时钟中断01 - Buzzer.h#ifndef __BUZZER_H__#define __BUZZER_H__#include "MCU.h" typedef enum { beepOff = 0, b原创 2020-10-28 11:14:01 · 681 阅读 · 0 评论 -
【应用C】C语言实现基于实验法的定频波轮洗衣机模糊称重计算及处理
目录01 - 定频波轮洗衣机模糊称重原理及离散性1.1 - 模糊称重原理1.2 - 模糊称重离散性02 - 实验法进行模糊称重03 - C语言实现01 - 定频波轮洗衣机模糊称重原理及离散性1.1 - 模糊称重原理 定频波轮式洗衣机对桶内衣物的称重中,因为设计及成本的考虑,并没有像电子秤这样直接根据物体压力情况进行重力计算的元器件,采用的是电机反电动势(磁生电)通过激励源产生特定频率的正弦波进行的,具体过程为:#mermaid-svg-YCyk8bBzdEDClKcv .label{font-f原创 2020-10-16 17:38:47 · 1105 阅读 · 0 评论 -
【应用C】C语言实现基于中断方式的旋转编码器方向识别(编码器有空闲状态)
文章目录01 - 编码器旋转波形02 - 编程思路03 - 源代码 编码器类型是有空闲状态,当没有旋转的时候,AB相都为高电平,而且当旋转旋钮后无动作,AB相会恢复到高电平,所以方向的一个方向的完整波形为(假设A相先,B相后):A相高电平 — A相低电平— 持续低电平 — A相高电平B相高电平 ----------B相低电平 — 持续低电平 — B相高电平 然后看一下编程识别方向的...原创 2020-04-18 19:20:50 · 1872 阅读 · 0 评论 -
【应用C】C语言实现基于中断方式的旋转编码器方向识别(编码器没有空闲状态)
文章目录01 - 编码器旋转波形02 - 编程思路03 - 源代码 编码器类型:方向依靠AB两相的电平变化前后顺序而定,编码器没有所谓的空闲状态,先看编程识别方向的串口输出演示视频: 编码器(无空闲状态)编程识别方向的串口输出演示 01 - 编码器旋转波形 这种编码本...原创 2020-04-18 19:19:03 · 1941 阅读 · 1 评论 -
【应用C】一本正经分析有趣的C语言代码《流浪地球Spring12春节十二响》
文章目录01 - Spring12下载02 - Spring12分析03 - Spring12扩展04 - 如何用Scratch实现Spring12这里是需要突出显示的内容 春节十二响这个梗01 - Spring12下载02 - Spring12分析03 - Spring12扩展04 - 如何用Scratch实现Spring12 GitHub源码修改后的GitHub源码...原创 2019-03-07 14:37:24 · 1373 阅读 · 3 评论 -
【应用C】C语言模拟虚拟内存基本页面置换算法FIFO、OPT和LRU并比较效率(+源代码)
文章目录01 - 页面置换算法1.1 - FIFO1.2 - OPT1.3 - LRU02 - 效率比较03 - 源码下载04 - 总结 虚拟内存的核心原理是局部原理,作业在某个时间段内只运行在某一段代码范围内,于是不必要把整个作业都调入内存运行,只需要部分即可。 虚拟内存管理一般采用按页管理,内存和作业都以页为单位,可以先调用作业的一部分页面进入内存运行,当作业所需要的页面不存在内存的...原创 2019-01-22 17:59:05 · 2941 阅读 · 2 评论 -
【应用C】C语言实现批处理操作系统的高响应比作业调度(+源代码)
文章目录01 - 批处理系统02 - 程序框架03 - 源码下载04 - 结果测试05 - 总结01 - 批处理系统 批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行,本例程的作业的优先级采用高响应比PPP优先,其中作业的等待时间为TwT_wTw,作业估计运行时间为TrT_rTr,关系为:P=TwTr P =\frac{ T_w}{T_r}P=TrTw...原创 2019-01-15 12:06:10 · 2748 阅读 · 0 评论 -
【应用C】C语言实现行列式与矩阵的运算系统(+源代码)
文章目录01 - 线性代数02 - 数据结构03 - 行列式运算04 - 矩阵运算05 - 结果测试01 - 线性代数02 - 数据结构03 - 行列式运算04 - 矩阵运算05 - 结果测试 ...原创 2019-01-11 11:47:43 · 4122 阅读 · 1 评论 -
【应用C】C语言实现HashSet并模仿Java机制和语法(+源代码)
文章目录01 - HashSet02 - HashCode02 - 模仿Java机制和语法2.1 - 模仿泛型2.2 - 模仿自动扩容2.3 - 模仿迭代器03 - 结果测试04 - 源码下载05 - 总结很久之前的一个课程作业,用C语言实现HashSet,体会HashSet的内部工作机制,同时模仿Java的机制和语法01 - HashSet HashSet(哈希集合)是一种容器,Jav...原创 2019-01-10 20:17:20 · 1201 阅读 · 1 评论 -
【应用C】C语言实现离散数学合式公式的递归判断
原子是合式公式;若A是合式公式,则( )也是合式公式;若A,B是合式公式,则 也是合式公式;若A是合式公式, 是A中的变量符号,则 也是合式公式;只有限次地使用1~4所生成的符号串才是合式公式。...原创 2018-09-28 19:46:03 · 3878 阅读 · 2 评论 -
【应用C】局部变量的栈空间分配
有时候,在C语言的循环中,如果编程时对边界判断错误,就会带来意想不到的结果,小白在本文中提及一个有趣的C语言问题,此问题并不是小白原创,而是一本编程书的考核内容,小白将其分享到此。C语言有趣的问题先看代码:#include <stdio.h>int main(void){ int a[10原创 2019-01-14 22:15:03 · 3525 阅读 · 1 评论 -
【应用C】Linux内核链表
C语言数据结构中,可以分为线性数据结构和非线性数据结构,其中线性数据结构非常重要的内容是链表,本文章从基本的链表过渡到Linux内核链表数据与逻辑结合的链表 什么是数据与逻辑结合?先回想曾经学过的各种链表: 可以看出,从最简单的单向链表根据需求不断改造成双向循环链表,目的都是为了使得增删改查更加快捷,这样的改动是非常有意义的,但是存...原创 2018-08-21 01:18:00 · 253 阅读 · 0 评论 -
【应用C】内联函数
学习C语言的重要内容之一是学习函数调用的内部机制,下文将从函数调用开始引申到内联函数,直到剖析内联函数。函数调用(假设函数A调用了函数B)对于被调用者B而言,其执行过程分为5步: 1. 若有形参,在栈上给形参变量开辟空间 2. 若有形参,进行实参与形参的值传递 3. 执行函数体 4. return结束函数,若有返回值,把值返回到调用处 5. 由系统释放该...原创 2018-07-04 21:45:04 · 1253 阅读 · 3 评论 -
【应用C】(void)(&_a == &_b)或者更为抽象的(void)object的作用
非技术性文章,只是为了分享解决问题的方法小白在复习C语言数据结构查看Linux源代码的时候,看到了Linux源代码中MAX(a,b)的实现,它能够比较2个任意类型的数据(可行的情况下)并获得最大值,实现得非常包容。Linux是利用宏,并且使用了GNU的扩展语法:typeof()和语句表达式,代码如下:1.#define MAX(a,b) \2. ({\3. ...原创 2018-07-02 22:10:50 · 2454 阅读 · 7 评论