GCC-AVR 编写中断服务函数的注意事项

//注意:本文使用的GCC-AVR版本为WinAVR20100110中断不是C语言的一部分,中断的实现是由编译器实现的。所以,不同版本的编译器的中断的写法有很大的不同;即便同样是WinAVR,不同版本中的中断向量竟然都是略有区别的!1.头文件如果使用GCC-AVR的中断操作,必须包括头文件interrupt.h,即:#include <avr/interrupt.h>...

http://www.eeworld.com.cn/mcu/article_2017112436244.html 发布时间: 2017-11-24



AVR 比较匹配中断

CTC:比较匹配时清零计数器模式,。当计数器TCNT0的数值等于比较寄存器OCR0时计数器TCNT0自动清零。OCR0定义了计数器的最大(TOP)值,这个模式使得用户可以很容易地控制比较匹配输出的频率。T/C0的比较输出脚为OC0(PB3),PB口的第三脚,在此模式下可以在OC0上输出PWM控制外部设备。例如:在OC0脚上输出20HZ的方波信号,方波的周期时间为T=1/20HZ=0.05秒=50ms,半个周期为25ms,系统采用8MHZ晶振,1024分频,时钟计数频率为8000000/1024=7812.5HZ,每个时钟脉冲时间为1/7812.5=0.128ms, 定时25ms的计数值为25m...
关键词: AVR 中断

http://www.eeworld.com.cn/mcu/article_2017112436242.html 发布时间: 2017-11-24



AVR单片机系列之-Atmega8A编程入门

/iomXXX.h中查找。有几个事情需要备注一下:1、中断函数不需要清除中断标志位,这个过程是由硬件实现的。2、中断使能有两个,一个是全局的asm("sei");//开启全局中断,一个是每个中断各自的寄存器使能位。三、程序的下载程序下载不是在AtmelStudio里面实现的,因为我们使用的不是Atmel官方的调试器,因此AtmelStudio在开发过程中起到的作用是将C语言或汇编源代码编译链接...

http://www.eeworld.com.cn/mcu/article_2017112436241.html 发布时间: 2017-11-24



为何AVR使用写1作为清0中断标志位的手段

系统程序,而标准的C中,没有位变量的概念,最小的单位也是字节。因此硬件的设计上面也要考虑能发挥C语言的优势。以上是我分析的原因。因为已经超出了我研究的方向(我侧重于应用),可能不全面或有偏差。下面回到AVR本身。我们可以注意到:1。AVR没有“位”空间,也就是说没有单独的“位”地址,所有的位寻址是基于8位的寄存器的,所以基本寻址方式是以寄存器为主的。2。因此AVR没有专门的位寻址指令,它本身...
关键词: AVR 断标志位

http://www.eeworld.com.cn/mcu/article_2017112436239.html 发布时间: 2017-11-24



智能音箱大火,分享全栈语音识别工程师修炼手册

声学领域的知识。语言学概论、语言哲学、语义最小论与语用多元论、语法化与语义图等知识对于理解语言模型和语音交互UI设计非常有帮助。 【计算机学】信号系统、数字信号处理、语音信号处理、离散数学、数据结构、算法导论、并行计算、C语言概论、Python语言、语音识别、深度学习等课程也是必备的基础知识。 语音识别专业知识语音识别的知识体系可以划分为三个大的部分:专业基础、支撑技能和应用...

http://www.eeworld.com.cn/qrs/article_2017112441381.html 发布时间: 2017-11-24



单片机按键扫描方法探讨

新型的按键扫描程序不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不需要听我...

http://www.eeworld.com.cn/mcu/article_2017112236199.html 发布时间: 2017-11-22



AVR的pgm_read_byte

刚刚从ICC过渡到GCC,鉴于GCC使用的标准的C语言,在编译器编译优化以及语法定义中要求变的“苛刻”了,遇到一些问题,但很快解决了,很高兴啊,以后就GCC了!以往在ICC中把大容量的数组(例如图片数据image[ ])放到flash中去,在使用读出是可以直接使用image[ ]来访问flash空间,感觉使用很方便。结果直接移植ICC的程序到GCC中时遇阻了,经查阅资料和研读GCC带的手册发现...
关键词: AVR pgm_read_byte

http://www.eeworld.com.cn/mcu/article_2017112236197.html 发布时间: 2017-11-22



AVR单片机的优越性

自动复位、看门狗、启动延时等功能,零外围电路也可以工作;5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。目前支持AVR单片机编译器的语言主要有汇编语言、C语言、BASIC语言等。其中C编译器主要有CodeVisionAVR、AVRGCC、IAR、ICCAVR等,C语言编译器...
关键词: AVR 单片机 优越性

http://www.eeworld.com.cn/mcu/article_2017112236193.html 发布时间: 2017-11-22



《C语言深度剖析》

C语言深度解剖》是一本很不错的国内C语言精炼书籍,阅读此书的读者首先要有一定的C语言功底和实践经验,才能深刻理解书中作者的语言或观点。...

http://download.eeworld.com.cn/detail/zb495203317/565931 发布时间: 2017-11-21



AVR 软件操作库函数

1.C语言宏定义技巧(常用宏定义) 1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植.typedef unsigned char boolean;typedef unsigned long int uint32;typedef unsigned short uint16;typedef unsigned char uint8;typedef signed long int int32;typedef signed short in...
关键词: AVR 软件操作 库函数

http://www.eeworld.com.cn/mcu/article_2017112036143.html 发布时间: 2017-11-20



AVR c语言优秀编程风格

文件结构模块化的程序应该是有一个很好的程序结构的。AVR C语言程序有两种用户文件,.c程序文件,.h头文件,程序中编写过程中需要在.c文件中包含.h头文件。初学者往往出现重复包含或者头文件包含错误的问题,我当时也时常为这种错误而发愁。下面我以我写的电机驱动例程来给大家说明一下,优秀的编程文件结构。这个工程中有8个文件,一个说明文件,如下图:下载程序例子 电机控制案例 。我写的成型的程序的文件个数基本上都是偶数,因为每一个结构化的函数定义.c文件都会对应一个.h文件。main.c对应config.h。我们来看看各文件的包含关系。下面我们看看这些文件的包含关系与内容:[推荐的...
关键词: AVR c语言 编程风格

http://www.eeworld.com.cn/mcu/article_2017112036140.html 发布时间: 2017-11-20



avr定时器/计数器1 --TC1 --输入捕捉模式 (捕获外部事件模式)

T/C 的输入捕捉单元可用来捕获外部事件,并为其赋予时间标记以说明此时间的发生时刻。外部事件发生的触发信号由引脚ICP1 (PD6)输入,也可通过模拟比较器单元来实现。时间标记可用来计算频率、占空比及信号的其它特征,以及为事件创建日志。当引脚ICP1 上的逻辑电平( 事件) 发生了变化,或模拟比较器输出ACO 电平发生了变化,并且这个电平变化为边沿检测器所证实,输入捕捉即被激发:16 位的TCNT1 数据被拷贝到输入捕捉寄存器ICR1,同时输入捕捉标志位ICF1 置位。如果此时ICIE1 = 1,输入捕捉标志将产生输入捕捉中断。中断执行时ICF1 自动清零,或者也可通过软件在其对应的I/O 位...

http://www.eeworld.com.cn/mcu/article_2017112036138.html 发布时间: 2017-11-20



七大主流单片机的优缺点

还是要优秀的…缺点:1. 是没有位操作,都是以字节形式来控制和判断相关寄存器位的2. C语言与51的C语言在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习惯3. 通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。使用最多的器件...

http://www.eeworld.com.cn/mcu/article_2017112036128.html 发布时间: 2017-11-20



单片机C语言模块化编程方法

当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。你需要和你的小组成员分工合作,一起完成项目,这就要求小组成员各自负责一部分工程。比如你可能只是负责通讯或者显示这一块。这个时候,你就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模块调用。最后,小组成员都将自己负责的模块写完并调试无误后,由项目组长进行组合调试。像这些场合就要求程序必须模块化。模块化的好处是很多的,不仅仅是便于分工,它还有助于程序的调试,有利于程序结构的划分,还能增加程序的可读性和可移植性。初学者往往搞不懂如何模块化编程,其实它是简单易学,而且又是组织良好程序结构行之有效的方法之一.本文将先大概讲一...

http://www.eeworld.com.cn/mcu/article_2017112036122.html 发布时间: 2017-11-20



如何提高单片机程序执行效率

     首先什么是执行效率。我们平常所说的执行效率就是使用相同的算法在相同输入条件下完成相同计算所产生的系统开销,目前来说一般会更多关注执行时间方面的开销。所有语言编写的代码最终要运行,都要转化成机器码。在更短的时间内完成相同的事那么效率就高。    关于如何提高C语言程序的执行效率,以我多年的编程经验在这里我来谈谈我的想法:1.尽量避免调用延时函数没有带操作系统的程序只能在while(1)里面循环执行,如果在这里面调用大量的延时这样会很消耗CPU的资源,延时等于是让他在这歇着不干事了,只有中断里面的才...

http://www.eeworld.com.cn/mcu/article_2017112036115.html 发布时间: 2017-11-20



μCOS-II移植到ARM处理器上的几个要点

。  1uCOS II系统结构  uCOS II的软硬件体系结构如图1。应用程序处于整个系统的顶层。每个任务都可以认为自己独占了CPU,因而可以设计成为一个无限循环。大部分代码是使用ANSI C语言书写的,因此uCOS II的可移植性较好。尽管如此,仍然需要使用C和汇编语言写一些处理器相关的代码。uCOS II的移植需要满足以下要求:  1)处理器的C编译器可以产生可重入代码:可以使用C调用进入和退出...

http://www.eeworld.com.cn/mcu/article_2017111936112.html 发布时间: 2017-11-19



关于51单片机存储空间的说明

在学校很少用到外扩ROM/RAM的情况,都是用C语言编程,不差空间,代码太大了,买个大ROM的芯片就行了。现在工作了,单位是做SoC的,采用了51的IP核,才算对51的代码/数据空间有了清晰的认识。MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。而ARM(甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。好,说回MCS-51。对于程序存储...

http://www.eeworld.com.cn/mcu/article_2017111936111.html 发布时间: 2017-11-19



ARM基础:系统调用与软件中断SWI的实现

,只要该处理程序没有问题,那么用户程序还是不能为所欲为的。SWI指令后面的24立即数是干什么用的呢?用户程序通过SWI指令切换到特权模式,进入软中断处理程序,但是软中断处理程序不知道用户程序到底想要做什么?SWI指令后面的24位用来做用户程序和软中断处理程序之间的接头暗号。通过该软中断立即数来区分用户不同操作,执行不同内核函数。如果用户程序调用系统调用时传递参数,根据ATPCSC语言与汇编混合编程规则将...

http://www.eeworld.com.cn/mcu/article_2017111936106.html 发布时间: 2017-11-19



ARM基础:ARM知识通俗理解

/******************************************************************************************************************参考:说明:。******************************************************************************************************************/ 记一下概念的东西,有我自己的认识:    关于ARM THUMB两个状态,我自己的见...
关键词: ARM基础 ARM知识

http://www.eeworld.com.cn/mcu/article_2017111936105.html 发布时间: 2017-11-19



STM32之TFT-LCD液晶学习

TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。TFT液晶原理:*背光模组:提供光源*上下偏光片,TFT Glass Substrate, 液晶:形成偏振光,控制光线的通过与否*彩色滤光片:提供TFT LCD R/G/B(三原色)的来源*ITO...
关键词: STM32 TFT-LCD 液晶学习

http://www.eeworld.com.cn/mcu/article_2017111936099.html 发布时间: 2017-11-19




<上一页 11121314151617181920212223242526 下一页> 相关结果约14,936个