E-96电阻值代码表

在贴片电阻的标注中,会有01C这种的标注方法,该种方法的称作三位数数乘标注法,表示方法为XXY。
其中XX可以通过E-96电阻值代码表查出,XXY对应的阻值为XX对应代码值乘以10^Y。
如01C,通过查表可知01表示100,C对应10的2次幂,所以01C对应阻值为100×10^2=10K。
E-96乘数代码表和阻值代码表如下:

电阻阻值查询软件点此下载

TTL和CMOS区别

#一、定义
TTL集成电路的全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic),主要有54/74系列标准TTL、高速型TTL(HTTL)、低功耗型TTL(LTTL)、肖特基型TTL(S-TTL)、低功耗肖特基型TTL(LSTTL)五个系列。
CMOS集成电路全名是互补金属-氧化物-半导体场效应管(Complementary metal-oxide-semiconductor)。
TTL电路的电平就叫TTL电平,CMOS电路的电平就叫CMOS电平。

S域到Z域双线性变换

在Matlab中,c2d函数可以实现S域到Z域双线性变换,
但是如果要在DSP中实现双线性变换,就需要通过一般形式来表达,然后在DSP中去实现,
在求Z域的表达式时,对于高阶次的,计算量大,因此本人在Matlab中编写了一个M文件,
通过编写的函数,只需输入分子分母的阶次即可计算出相关系数,
具体的M文件和使用说明点此下载

FPGA奇分频的实现

在FPGA或CPLD里面,经常会用到分频模块。偶分频很容易实现,而奇分频相对复杂点,本文介绍两种奇分频的方法,生成占空比为50%频率为N(奇数)信号。

第一种方法设计思路:

分别用两个计数器cnt_up,cnt_down,当检测到输入时钟的上升沿时cnt_up加1,检测到输入时钟的下降沿时cnt_down加1。

1、当cnt_down=(N-1)/2 + 1时,输出时钟翻转一次

C语言关键字(3)——volatile

volatile的意思是不稳定的,易变的。volatile作为关键字声明变量之后,每次对该变量的访问都会去访问该变量的内存单元,而非寄存器。因为代码经过编译优化之后,在访问一些变量时,直接从寄存器访问。下面看一段示意代码:

byte flag = 0;
...
void func(void){
    if(flag)
        do something...
    else
        do something...
}

如果变量flag是在某一中断函数中去改变,会发现在函数func中,一直都是执行else后面的语句。
如果修改为

volatile byte flag = 0;

则就达到想要的结果了。
一般来说,volatile常用在三个地方:

  • 在中断服务程序中修改的变量在其它地方作为条件检测来使用;
  • 多任务或多线程中共享的变量;
  • 存储器映射的硬件寄存器。

C语言关键字(2)——extern

在一个project中,会有多个源文件,就会存在一个文件调用另外一个文件中的变量或者函数,下面以自己在实际过程中所用到的加以说明。

1、引用外部全局变量(无”.h”文件)

如有stu.c和main.c两个源文件,现在要在main.c文件中使用stu.c中一个全局变量”num”,

//stu.c
#include "stdio.h"  
int num = 2; //extern可以省略  

//main.c
#include "stdio.h"
int main()
{
     extern int num; //声明要使用的外部变量,前面一定要加上extern
     printf("%d\n",num);
     return 0;
}

程序运行结果为:2

C语言关键字(1)——static

1、全局静态变量

在全局变量前加上static,该全局变量就被定义为全局静态变量。

与全局变量相比,全局静态变量的特点有:

1)未初始化的全局静态变量会被程序自动初始化为0,并且存在静态存储区

2)全局静态变量的作用域为该文件,其它文件不可使用该变量

例如:现有test1.c和main.c两个文件

//test1.c

int i = 10;

C语言预处理命令常见问题

一、宏定义#define

宏定义就是用一个字符来表示一个字符串,让程序更简明,同时也便于修改,如#define PI 3.1415926 这样的都很常见,也不会产生什么问题,容易出现问题的就是带参数的宏定义,例如

#define S(x) x*x

如果x=10,很明显S(10)=1010;但是如果说x=a+b,此时S(x)=a+ba+b,显然和我们预想的不一样,如果这样定义,则可以达到目的

#define S(x) (x)*(x)

当x=a+b时,则S(x)=(a+b)*(a+b),这样就和预想的一样了。