- 博客(35)
- 收藏
- 关注
原创 相机拍照时预览卡顿问题
1、卡顿的概念人眼对于每11毫秒闪烁一次约83赫兹基本感觉不到,每13毫秒闪烁一次约66赫兹轻微频闪。人眼的刷新频率是:通常条件下,人眼的识别连贯图像的速度是24帧/秒,也就是1000毫秒/24帧,大约为40ms(毫秒)。达到或者超过这个速度的连贯图像,观看时就不会形成卡顿的感觉。形成这个现象的原因是因为人眼观看影像时,会产生视觉延迟导致的。所以说,我们经常说人眼的视觉延迟感应速度为>=40ms。眼睛分辨显示器频率的问题:每个人都是这样的,在传统的显示器上75HZ一下就会感觉到闪烁,85H
2022-05-22 22:23:35
4225
原创 学生成绩管理系统全解析
#include <stdio.h>#include <stdlib.h>#include <string.h>struct student{ char id[20]; char name[20]; int score1; int score2; int score3; int average;}st...
2020-06-24 20:55:50
796
转载 gdb调试的基本使用
https://www.cnblogs.com/HKUI/p/8955443.htmlGDB调试启动程序准备调试GDB yourpram或者先输入GDB然后输入file yourpram然后使用run或者r命令开始程序的执行,也可以使用 run parameter将参数传递给该程序参数列表 命令 命令缩写 命令说明...
2019-09-24 22:18:12
281
转载 switch与if else的效率问题
switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。 具体地说,switch...case会生...
2019-09-08 16:20:44
490
原创 C语言的预处理命令的问题
预处理命令是在程序编译阶段进行执行的命令,用于编译与特定环境相关的可执行文件。预处理命令扩展了C语言。一、宏替换命令不用多讲,大家都懂。#define 标识符 字符串下面总结一些比较特殊的宏:1、交换两个参数值//一定要注意小括号的使用#define SWAP(a,b) {(a)=(a)+(b); (b)=(a)-(b); (a)=(a)-(a);}2、输入两个参数...
2019-09-03 19:40:48
2407
2
原创 使用位域的结构体内存分布
首先来看两个结构体:struct s1{ int i : 8; int j : 4; int a : 3; double b;}struct s2{ int i : 8; int j : 4; double b; int a : 3;}printf("%d %d\n",sizeof(s1),sizeof(s2)...
2019-08-28 19:25:34
697
4
原创 嵌入式系统中固定内存位置的访问,中断的使用以及动态内存分配
一、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。int *ptr;ptr = (int *)0x67a9;*ptr = 0xaa66;a more obscure approach is: *(int *const)(0x67a9) = 0xaa66;...
2019-08-28 15:21:14
1132
原创 位操作(Bit manipulation)
嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3。在以上两个操作中,要保持其他位不变。用#define和bit mask操作,这是一个有极高可移植性的方法。#define BIT3 (0x01 << 3)static int a;void set_bit3(void){ ...
2019-08-26 20:02:47
568
原创 关键字volatile以及相关问题
一个定义为volatile的变量,编译器(优化器)每次用到这个变量时必须从该变量的地址处读取该值,而不是保存在寄存器里的备份。比如: ①多线程应用中被几个任务共享的变量。 ②并行设备的硬件寄存器(如状态寄存器)。 ③一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)。Q1:一个参数既可以是const还可以是volatil...
2019-08-26 19:23:08
167
原创 全局变量可不可以定义在可被多个.c文件包含的头文件中?
可以,在头文件或不同的c文件中用static来修饰同名全局变量。另外一点,可以在不同的c文件中声明同名的全局变量,前提是其中只能有一个c文件中对此变量赋值,此时链接不会出错。extern和static不能同时修饰同一变量。链接规范,每个c/c++的定义都有链接规范(linkage)的属性。外部链接(external linkage)的定义可被定义处以外的翻译单元看见并引用。 ...
2019-08-26 17:30:32
8945
原创 C语言内存管理
1、栈区 保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。2、堆区 由malloc系列函数或new操作符分配的内存。其生命周期有free或delete决定。在没有释放之前一直存在,直到程序结束。其特点是使用灵活,空间比较大,但容易出错。3、数据区 ①bss区:(Block...
2019-08-07 15:54:29
228
原创 用链表和指针编写通讯录v1.0
/* 知识点总结:指针部分: 1、定义使用一个指针: ①声明 char * p; ②申请内存 p = (char *)malloc(sizeof(char)*n);malloc申请下来的内存空间用来存放*p的值; ③给指针p赋值 p = NULL; ④free(p) 2、无法把指针变量本身传递给一个函数。解...
2019-08-07 15:11:37
268
原创 3A和ISP算法概念梳理
AE的相关概念:1、确认Ev offset正确性是什么意思?类似于OB offset,对应于LSB中的LV的等级进行补偿校正。2、target = (THD/Y)*CWV THD :from parameterY :from N% of histogram brightness value.CWV :centre weighting value3、ob offset?...
2019-08-01 13:41:39
7859
原创 camera tuning的常用缩写
CC, color conversion,色彩转换CC, color correction,色彩矫正CE, chroma enhancement,色度增强SNR,signal-to-noise ratio,信噪比SNR, skin noise reduce,肤色降噪STD, standard deviation,标准差OIS, optical image stabiliza...
2019-07-24 09:28:46
14461
5
原创 飞思卡尔单片机学习记录(一)
基础元件初始化步骤一、GPIO(1)、确定GPIO的方向:DDRx(2)、访问GPIO口:PORTx、PTx注意:输入输出时引脚的初始状态二、中断(1)、确定中断的有效信号特性:上升/下降(2)、使能中断(3)、开总中断:EnableInterrups;三、串口通信SCI(别的单片机为UART)SCI串行通信的基本编程方法:①初始化:设置波特率寄存器、设...
2019-06-27 16:41:21
6086
原创 嵌入式linux C开发环境
嵌入式linux C开发环境: 1、编辑工具:vi(vim)//其地位类似Edit在DOS中3中状态:命令行模式,插入模式,底行模式! 2、 编译器:GCC(GUN Compiler Collection),gcc -E test.c -o test.i 预处理阶段,首先把头文件stdio.h中的内容加载到test.c中的首部。gcc -S test.i -o test...
2019-04-03 22:09:57
621
原创 C++基础篇--类与对象
类的定义:(假设定义一个名为First的类)class First //define a class{ private: int somedata; //class data public: void setdata(int d) { somedata = d; } void showd...
2019-03-18 16:32:33
417
1
原创 CT107D单片机DS18b20程序
1、初始化2、ROM指令3、寄存器指令注意:官方提供的初始化驱动应延时500微妙,读写驱动应延时80微妙#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int sbit DQ = P1^4; uchar code t...
2019-03-15 23:24:22
615
原创 CT107D单片机基础篇总结时钟项目
1、用定时器0制作一个时钟,//用stc-isp带的软件 uint tt显示格式xx-xx-xx //Display函数 uchar hour,min,sec; uchar code tab_duan{} uchar code tab_wei{}2、当到达半点时,led0以0.2s闪...
2019-03-12 23:06:15
1277
原创 C++基础篇二(读书笔记之简单操作)
首先先看一个程序://HELLO.CPP/* Give a greeting. */#include<iostream>using namespace std;int main(){ char name[20]; cout<<"What's your name?\n"; cin>>name; cout<<...
2019-03-10 21:38:08
239
原创 C++基础篇--面向对象化设计
面向程序化设计(object-oriented programming.简称OOP):基本思想是把数据和操作这些数据的函数合并到一个简单的单元中,这样的单元被称为对象。对象中的函数称为成员函数,它提供了访问该对象数据的唯一途径。想读取数据就要调用函数,不能够直接访问数据,因为数据对外界不可见(避免数据被意外改变)。将数据和它的函数装进一个实体,这被称为封装。面向对象语言的特征:1.对象...
2019-03-10 18:21:51
576
1
原创 CT107D蓝桥杯单片机数码管代码
1、静态/*#include <reg52.h>unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};void delayms(int ms){ int i,j; for(i=ms;i>0;i--) for(j=845;j>0;j...
2019-03-09 22:07:04
1898
原创 CT107D蓝桥杯单片机按键代码
1、独立按键/*#include <reg52.h>sbit led0 = P0^0;sbit led1 = P0^1;sbit led2 = P0^2;sbit led3 = P0^3;void delayms(int ms);void main(){ char i,temp; P2=0XA0;P0=0X00;P2=0x80;P0=0XFF; wh...
2019-03-07 10:46:13
2109
原创 bit、sbit、sfr和sfr16的概念和区别
1、bit和int ,char之类的差不多,只不过char=8位,bit=1位 sbit是对应可位寻址空间的一个位,可位寻址:20H~2FH。一旦用了sbit xxx = REG^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中,方便对寄存器的某位进行操作。①sbit 位变量名 = 地址值 ...
2019-03-06 00:11:39
7068
原创 CT107D蓝桥杯单片机蜂鸣器、流水灯程序
1、关闭蜂鸣器P2 = 0XA0;//打开蜂鸣器锁存P0 = 0X00;//输送关闭蜂鸣器命令P2 = 0X00;//关闭蜂鸣器锁存2、流水灯#include <reg52.h>void delay(int t){ int a; for(;t>0;t--) { for(a=20000;a>0;a--); ...
2019-03-04 23:39:33
5698
1
原创 socket相关函数
套接字socket:服务器(6)socketbind(绑定) listen(监听客户端,)accept(接收) send recv客户端(4)socket connect (发起连接时,端口号要保持一致) send recv1、socket函数int socket(int domain,int type,int pro...
2019-03-03 13:23:35
1361
原创 C语言静态变量与自动变量以及众多类型变量辨析
谈起变量的类型,映入眼帘的首先可能是静态变量、自动变量;也可能是外部变量、内部变量;或许还会有全局变量、局部变量、寄存器变量...总之,不免让人感到头大。那么今天我就借助《C程序设计语言》与《C和指针》这两本书来尽可能区分一下他们。首先我们要了解变量的三种属性:作用域,链接属性,存储类型。作用域:变量可以被使用的区域。链接属性:决定如何处理不同位置出现的变量。存储类型:三个地方...
2019-03-01 18:17:58
1657
原创 C语言字符常量与字符串常量
字符常量:一个用单引号括起来的单个字符(或字符转义序列或三字母词)实质(含义):是一个整形值。属于四大基本数据类型(分别是整型,浮点型,指针,聚合类型)中的整型(integers)。 如‘a', '\n', '??!', '\24'针对上面四个例子逐一讲解: 1. 第一个’a'似乎没什么好说的,严格满足定义。(有一点想说一下,'abc'到底算不算...
2019-02-28 09:51:03
34676
2
原创 linux进程间通信之管道通信
一、命名管道通信管道通信分为:无名管道和有名管道无名管道是用于父子孙进程,之间有血缘关系有名管道:用于任意两个进程 无名管道:1、创建:int pipe(int filedis[2]); 它会创建两个文件描述符 filedis[0] 用于读管道filedis[1] 用于写管道(通常先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程所创建...
2019-02-20 16:53:39
263
原创 Linux下进程控制编程(父进程写入数据,子进程读出数据)
//父进程 write 子进程 read//需要用到的函数 open,write,memset(清空缓存buf),read,fork(创建子进程),sleep,#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#in...
2019-02-15 19:37:58
3944
1
原创 变量的存储方式和生存期
在C语言中,每一个变量和函数都有两个属性:数据类型和数据的存储类别。从变量的作用域(即空间)的角度来观察,变量可以分为全局变量和局部变量。从变量值存在的时间(即生存期)来观察,变量的存储方式分为静态存储方式和动态存储方式。C的存储类别包括4种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。根据变量的存储类别,可以知道变量的作用域和生存...
2018-09-04 23:04:25
1474
原创 51单片机LCD1602液晶显示
LCD1602.noteLCD1602是一种工业字符型液晶,能够同时显示16*02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示图形。 简介:它由若干个5*7或者5*10等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到字符间距和行间距的作用,正因为如此所以他不能很好的显示图形(...
2018-08-18 14:47:38
24460
1
原创 51单片机中断系统定时器部分
引起CPU中断的根源,称为中断源,中断源向CPU提出中断请求,CPU暂时中断原来的事务A,转去处理事件B,对时间B处理完毕后,再回来原来的地方(断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。中断优先级决定了中断是否能够实现嵌套,52单片机一共有六个中断源 中断源 序号(C 默认中断级别 ...
2018-08-13 21:23:15
851
原创 单片机 花样灯
//杨玉祥 2018/7/20 花样灯#include <reg51.h>void sleepUs(unsigned int t);void sleepMs(unsigned int t);void main(){ char i,w,j,n; unsigned char table[] = {0xe7,0xdb,0xbd,0x7e,0x7e,0xbd...
2018-07-21 14:27:19
2945
原创 单片机 循环流水灯
下面分别用三种方法来控制实现循环流水灯。 // 杨玉祥 循环流水 2018/7/21#include <reg51.h>#define N 100void DelayUs2x(unsigned char t);void DelayMs(unsigned char t);/*void main() //最简单,bite控制循环流水灯{...
2018-07-21 13:27:38
9284
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅