发烧带来的心态变化
大概是在1月初的时候,我从隔壁工位的同事听说武汉出现了「不明原因的肺炎」。当时还不以为意,直到1月20日晚,准备回家过年的前一天,新闻上报道有肺炎扩散的趋势,自己这才开始重视起来。于是一向不喜欢戴口罩的我,在21日带着双层口罩出了门,乘地铁至火车站,后乘高铁回家。期间,在地铁上遇到的人,偶有一两个是佩戴了口罩的,其余人似乎都没受到肺炎相关新闻的影响。及至高铁,佩戴口罩的人稍多,但是大部分在列车发动一段时间后都摘了口罩,我自己亦是如此。只有邻座隔壁两人是除了吃午饭之外,始终保持佩戴的。见他们如此,我在午饭后也还是把口罩又重新戴了起来。
之后的事情就和网上大部分人的情况一样了。在1月22日,也就是法定节假日开始的这天,大部分年轻人已经意识到肺炎的严重性,口罩已经成为大家出门必备的物品了,而上年纪的人往往却并不太在意。我在家也不断提醒父母做好防护,并囤积好足够的口粮,建议他们不去参加大型的集会。陪他们去菜市场的时候,整个市场我所发现的佩戴口罩的人,也仅仅只有我一个。
在24日除夕过去之后,随着各项大型集会被取消,父母的防护意识开始被竖立起来,甚至一度比我更为紧张。
2月2日,在经过了一段时间 ...
Convert Image to ASCII Art
Background
Image Processing Library
To process a image, the easiest way is using a open source library.
Since this project is written for others. They are not familiar with the image processing and it’s to hard for them to install OpenCV in their computer. So, I tried to find a light-weight image processing processing library called CImg.
To use this repo, we just need to put the header file CImg.h into our own project folder and include it in the program.
NOTE: The CImg library can only deal wi ...
对于未来的困惑
新冠病毒的爆发,让大家都闲在了家里,我也有时间好好整理一下最近的东西,顺带更新一下尘封已久的博客了。
开始之前
「我为什么要搭建这个博客呢?」
仔细想想,我好像还从来没说起过这个原因。不过那也已经是很久以前的事情了。
最直接的原因是在搜索一道UVa OJ题解的时候,翻到了一位名叫Morris的博主的博客。在浏览他博客的过程中,由于自己本身也有希望给自己的成长做个记录的想法,「不如我也自己写一个博客吧!」这样的声音也不断在我脑海中浮现。于是乎,我照着这位博主的方式,也将这个博客搭建了起来。整体风格还是模仿他来的。但是由于自己水平有限,网站的整体技术上还是存在不小的差距。
刚开始的时候,会频繁的更新这个博客。但随着时间的流逝,凡事三分钟热度的我,还是逐渐断更了,没再打理这个网站。中间偶然捡起来过几次,但最后终归是没再管过了。
毕业
现在这个时代背景下,大家都在拼了命地读书,本科生遍地走,研究生往往成为了一个工作的起点。作为本科时代学习还不错我的,自然也是抱着「最少也得读个研」的想法了。因为自己的动手能力比较强,做项目、参加比赛往往能得到不错的成绩,加上GPA高,因此我身边的人无一不觉得我是 ...
Shuffling Bits
Background
NOTE: This article is from chapter 7.2 in Hackers’ Delight. I write this post because:
To have a better understanding of the algorithm
Need to apply it in a similar situation
Resources sometimes can be scarce in MCU. We may tend to use as little resources as possible and do calculations as fast as we could when the performance of MCU just barely meets our demands.
Besides when talking about calculations in MCU, many people would think about bit operation. For example, in normal C pr ...
Makefile for Projects with Subdirectories
Abstract
In order to manage our project easily, we may tend to make for help. Usually, our projects will contians many subdirectories. So writing a makefile which can always compile our projects successfully when our project add, delete or modify some sub-dirs is quite important.
Background
Take my private projects kmusb for example.
It file structure is like:
12345678910111213141516.├── README.md├── arg_parser│ ├── arg_parser.c│ └── arg_parser.h├── bin├── data├── kmusb.c├── kmusb.h├── makef ...
LPC55S69 USB 高速模式测试(一)
测试目标
配置LPC55S69 EVK所带的高速USB作为功能设备,测试其最快速率能达到多少,用于验证后续的开发。
LPC55S69配置
LPC55S69是一款基于ARM内核的双核MCU, 由两个Cortex-M33构成。其最高运行频率为100MHz。
整个工程的准备工作如下:
选用CPU0作为默认的控制核心
配置MAIN_CLK为96MHz(为了使用高速USB口,CPU时钟频率不得低于60MHz)
给USB HS PHY上电
USB功能设备配置
配置功能设备,需要先使能host controller的时钟,以便进行USB配置
DEV_ENABLE置1,让一个端口表现为USB设备
清除USB1_HOST位,关闭host controller,降低能耗
USB时钟配置
USB PHY配置48MHz时钟
USB PHY以及对应SRAM时钟使能
传输测试
连接方式:LPC55S69 EVK <-------USB 2.0 HS --------> MacBook
Corex-M33 freq: 100MHz
使用官方提供的SKD(v2.5.1),利用块传输(bu ...
Ucount 完结之后
很久没更新博客了。从最开始饶有兴致地搭建,到现在,愈发地发现自己能说的东西变得少了,以至于都将近荒废了这个地方。
不是说自己变得慵懒,而是近来常常有种感觉,觉得自身的知识储备太匮乏了。与其用无意义地更新博客来达到一种自我满足的状态,倒不如静下心来好好的提升自我,做点有意义的事情。
写一个自己的记账软件Ucount是出于对现有记账软件各种冗余功能和广告的不满。本来寒假的时候,就应该完成记编写。但是由于自己的资料准备问题,一直到了开学都已经过去一段时间了,才真正开始着手。
最基本的功能编写了两三天的样子,后来花了十多天一直优化到现在,已经将所有的基础功能都更新完毕,也算是把自己定下的诺言给实现了。
接下来也就不会再去深究安卓了,毕竟这不是自己想要坚持的方向。要赶紧回到正轨才行,OJ的练习,Linux的学习还是要继续下去的。
稍微写了一点文字,虽然条理十分还乱,但也算是对自己完成一个目标之后的记录吧。
字幕文件批量重命名脚本(二) —— Linux
还是老样子,先上GitHub:Yuuki_Dach’s GitHub
上次自己写了一个字幕批量重命名的脚本,结果发现在处理字幕文件的时候还是存在bug(毕竟是自己一边看番,一边测试+改进,没有特意的去找测试样本)
首先是关于视频文件的查找,原来的查找方式十分简单,也没有使用正则表达式,只是粗略的查找了一下,这里利用find的功能,使得查找更加精确。
在处理字幕文件的时候,也有问题。for循环在利用find查找的时候,会把空格视为一个间断。因此,这里利用IFS,把find指令找到的文件名当作一整块来处理就行了。
另外,字幕文件的后缀名有多种,而且利用正则表达式来匹配的方式也有很多,这里就留到下次再来处理。
12345678910111213141516171819202122232425262728293031#! /bin/bashecho "Before the opration stars, please make sure you have been in the right folder!"while true; do read -p "D ...
字幕文件批量重命名脚本 —— Linux
现在更新博客的速度大大降低了,主要还是认为把自己做的题目传上来对别人和自己的帮助都不是很大。行,废话少说,我们切入正题吧。
刚刚闲来无事,想到之前看番的时候,有些另外下载的字幕会和视频名字不匹配,给观看带来不必要的麻烦,所以动手写了一个比较粗糙的字幕文件批量重命名的脚本。
代码已经上传到Yuuki_Dach’s GitHub,后续还会慢慢添加别的脚本。
其实代码并不复杂,就是先确定文件路径,然后手动输入视频文件后缀名和集数,然后开始运行就行了,这里还是把代码也贴一下,方便大家吧
1234567891011121314151617181920212223242526272829#! /bin/bashecho "Before the opration stars, please make sure you have been in the right folder!"while true; do read -p "Do you want to continue? y/n" yn case ${yn} in ...
驭远路上——STM32比赛作品的记录
从开始准备学校“驭远杯”比赛,到现在比赛结束,自己和自己的队伍以初赛和决赛都是第一名的成绩成功夺冠,不知不觉已经过去一段时间了。这段时间里,没有和往常一样定期的刷OJ,也少了一定的闲暇时光。基本每天都是在白天上课和写作业,晚上准备比赛这样的节奏中度过。物理实验什么的都停了好久,差点选不够了_(:зゝ∠)_
虽然忙碌,但是最后的结果还是很不错的,也证明了我们这么多天的辛苦没有白费吧。这里还是简单记录一下自己的参赛过程。
先附上自己的代码: Controller of Mars exploration
以及视频链接: Youtobe、Bilibili
比赛整体分为三个阶段,第一个阶段是对燃料块(方块)和仪器(圆球)的抓取,至少要抓取一个燃料块,抓取两个会有时间的附加分,这一阶段为手动控制。第二阶段开始为自动控制,要求小车能够对亮起的灯塔进行搜寻并触发相应的开关以关闭灯塔。触碰完四个灯塔后方可进入到下一阶段。第三阶段就是上高台了,小车需要自己调整好角度,成功登上高台,并且把仪器(球)放下。
整个驭远比赛的赛制则分为初赛、晋级赛和决赛。初赛选取4组队伍直接进入决赛,5-12名则进入晋级赛,并 ...