应用程序设计入门再高级的单片机也是解决问题的一个工具,如何灵活运用已掌握的外设模块来满足功能需求以解决实际问题,是我们学习单片机开发的目标。你的程序写得很快,每个外设用得很溜,并不能代表你解决问题的能力就很好。这需要通过实际开发的磨练与经验的积累。实际上每个工程师在不断的开发过程中,多多
C语言是面向过程的,而C++是面向对象的C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这
PWM很常用,AVR自带内部PWM功能,分为快速PWM模式和相位修正PWM模式。 我们这里选择方式15 ,由OCR1A保存上限值,由OCR1B保存匹配值,所以输出管脚 OCR1A不能输PWM,只能有OCR1B输出PWM信号。 如果用方式 5,6,7模式 上限值是固定的,所以我们就可以用OCR1A和OCR1B保存匹配值 OCR1A和OCR
M451提供了两路PWM发生器。每路PWM支持6通道PWM输出或输入捕捉。有一个12位的预分频器把时钟源分频后输入给16位的计数器,另外还有一个16位的比较器。PWM计数器支持向上,向下,上下计数方式。PWM用比较器和计数器的比较来产生事件,这些事件用来产生PWM脉冲,中断,EADC/DAC转换触发信号。PWM发生器支持两种标
1.一种直观的方法 假设现在需要往内存0x12ff7c地址上存入一个整型数0x100。我们怎么才能做到呢?我们知道可以通过一个指针向其指向的内存地址写入数据,那么这里的内存地址0x12ff7c其本质不就是一个指针嘛。所以我们可以用下面的方法:12int *p = (int *)0x12ff7c;*p = 0
按位或按位与按位异或按位取反左移右移C语言位运算有6种: &, | , ^(亦或), >(右移)。注意:参与位运算的元素必须是int型或者char型,以补码形式出现。按位与&&运算常应用于:迅速清零保留指定位判断奇偶性a & 1 = 1;则a为奇数b & 1 = 0;则a为偶数按位或|按位或(“|”)用途:设定数据
以前小看了定时器,发现这东西还真的很讲究,那先复习复习吧。先提提中断:我的理解就是cpu执行时,遇到中断——根据对应的中断源(硬件或软件)——pc定位中断入口地址,然后根据这里的函数指针——跳转到相应的服务程序 &n
C语言提供了丰富的字符串处理函数,例如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,使用这些现成的函数可大大减轻编程的负担。用于输入输出的字符串函数,例如printf、puts、scanf、gets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。字符串长度函数strlenst
串行与并行通讯方式并行:控制简单,传输速度快。线多,长距离成本较高且同时接受困难。串行:将数据字节分成一位一位的行驶在一条传输线上进行传输。如图: 同步与异步串行通讯方式同步串行通讯方式:同步通讯需要建立发送方对接收方时钟的直接控制,是双方达到完全同步。异步串行通讯方式:
用来存放字符的数组称为字符数组,例如:char a[10]; //一维字符数组char b[5][10]; //二维字符数组char c[20]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a','m'}; // 给部分数组元素赋值char d[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' }; //对全体元素赋值时可以省去长度字符数组实际上是一系列