PIC单片机编译器的问题

/ MCC32)。IAR软件不能编译PIC的C语言或汇编语言。要注意的一点是,CCS虽然也是C语言,但因为头文件不同,所以它的程序和PICC,MCC都不一样,三者的程序不能混着编译,比如针对CCS编写的程序只能用CCS的编译器编译,用PICC编译只能报错。另外,HI-TECH已经被MICROCHIP收购,成为MICROCHIP旗下的全资子公司。...
关键词: PIC单片机 编译器

http://www.eeworld.com.cn/mcu/article_2017120136454.html 发布时间: 2017-12-01



彻底搞定C指针

。2. 但函数名调用如果都得如(*MyFun)(10);这样,那书写与读起来都是不方便和不习惯的。所以C语言的设计者们才会设计成又可允许MyFun(10);这种形式地调用(这样方便多了并与数学中的函数形式一样,不是吗?)。3. 为统一起见,FunP函数指针变量也可以FunP(10)的形式来调用。4. 赋值时,即可FunP=&MyFun形式,也可FunP=MyFun。上述代码的写法,随便你爱...

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



为何要使用C而不是汇编开发AVR?精华

我的骄傲。然而几年之后的今天,我要劝说后来学习者一定要舍弃汇编而学习C语言,是否很好笑。  首先说说C的优点。1、直观,可读性强:这点很重要。对于一个产品,周期是很长的,即使出第一台产品之后,还有很长的维护时间。这中间维护人员可能经常变动,如果可读性强,将给维护工作省下很大的成本。即使是在开发,可读性强的程序也便于查错。2、模块化可以做的很好:这点也是很重要的。模块化做得好,当然程序得重用性就高...
关键词: C 汇编开发 AVR

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



关于c与汇编混合编程的一点总结

在C和汇编混合编程的时候,存在C语言和汇编语言的变量以及函数的接口问题。在C程序中定义的变量,编译为.asm文件后,都被放进了.bss区,而且变量名的前面都带了一个下划线。在C程序中定义的函数,编译后在函数名前也带了一个下划线。例如:extern int num就会变成 .bss _num, 1extern float nums[5]就会变成.bss _nums, 5extern void...
关键词: c 汇编 混合编程

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



四位数数字温度表

1.温度传感器AD590基本知识  AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1uA。   AD590温度与电流的关系如下表所示摄氏温度AD590电流经10KΩ电压0℃273.2 uA2.732V10℃283.2 uA2.832 V20℃293.2 uA2.932 V30℃303.2 uA3.032 V40℃313.2 uA3.132 V50℃323.2 uA3.232 V60℃333.2 uA3.332 V100℃373.2 uA3.732 VAD590引脚图2....

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



各种烧写文件格式简介

一,ELFExecutable and linking format(ELF)文件是x86 Linux系统 下的一种常用目标文件(object file)格式,有三种主要类型:Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,有三种主要类型: (1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。 (2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。 (3)...
关键词: 烧写文件 格式

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



ARM7 LPC2378 远程升级----软中断SWI

我在这里,将我在学习这篇文章时遇到的疑问及理解和大家分享一下     LPC2300.S文件中的相关软中断代码如下:         EXPORT    SWI_Handler    extern  EnableIrqFunc          ;使能中断函数名,用C语言实现    extern  DisableIrqFunc&...

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



在main()之前,IAR都做了啥?

;7C80中的值——0x2000'27D4加载到R1寄存器,然后R0中的值自加4,更新为0x0800'7C84。2、将R1指向的地址——0x2000'27D4中的值——改写为R3寄存器的值——0,然后R1中的值自加4,更新为0x2000'27D8。3、R2自减44、检查R2是否为0,不为0,跳转到第二条执行。不为,则执行下一条。这简直就是一个循环!——C语言的循环...
关键词: main() IAR

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



ARM7的体系结构

; 在一个非字对齐(或非半字对齐)的地址处读写一个字或半字会引起非对齐的数据访问。注:编程时应该注意的问题:ARM处理器直接支持对齐存放的半字或字数据的存取,也就是可以使用一条相应的指令来实现对应操作。如果访问非对齐的半字或字数据,将需要多条指令组合才能实现对应操作,这对程序的执行效率影响较大。因此,在C语言编程中,定义的多字节变量或结构体,最好使其为对齐存放。...
关键词: ARM7 体系结构

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



ARM2200 下的中断编程三

一.在uc/os操作系统上设计中断函数时所要考虑的一些问题:1 .操作系统本身必须使用一个定时器中断源来作为系统节拍中断,它是操作系统工作的基础。2.只要没有关闭中断,中断服务程序就可以中断任何任务的运行,所以将中断服务程序看成比最高优先级(0)级的任务还要高的任务。3.中断服务程序的功能应该尽量简单,只要将获取的异步事件通信给关联任务即可,后续处理由其关联任务完成。4.实时操作系统UC/OS移植到ARM7体系的CPU上时,没有对FIQ   进行处理,即FIQ是不受操作系统管理的。由于没有操作系统介入,FIQ的ISR无法与关联任务进行通信,所获取的信息不能及时得到...
关键词: ARM2200 中断编程

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



1. avr定时器/计数器0 --TC0 --CTC模式输出PWM

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...

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



2. avr定时器/计数器0 --TC0 --快速PWM输出

PWM:脉冲宽度调制,图中T为脉冲周期,t为高电平时间,t与T的比值t/T称为占空比,脉宽调制指的是调整t的大小,即改变脉冲的占空比,占空比值越大,输出的电压越高。改变占空比就改变输出的电压,常用于实现D/A,调节电压或电流,改变电动机的转速等。 快速PWM模式:它的计数方式是TCNT0由0开始计数到255式,计数加1返回到0,然后继续加1计数,相对于相位PWM修正模式(由0计数到255,再从255计数到0),只有一个斜坡,因此PWM输出频率高。在快速PWM模式下,计数器的最大值决定了PWM的频率,而比较寄存器OCR0决定了占空比的大小。T/C0是8位计数器, 输出PWM的频率=系统...

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



3. avr定时器/计数器0 --TC0 --相位修正PWM模式

相位修正PWM 模式(WGM01:0 = 1) 为用户提供了一个获得高精度相位修正PWM 波形的方法。此模式基于双斜坡操作。计时器重复地从BOTTOM 计到MAX,然后又从MAX倒退回到BOTTOM。在一般的比较输出模式下,当计时器往MAX计数时若发生了TCNT0与OCR0的匹配,OC0将清零为低电平;而在计时器往BOTTOM计数时若发生了TCNT0与OCR0 的匹配, OC0 将置位为高电平。工作于反向输出比较时则正好相反。与单斜坡操作相比,双斜坡操作可获得的最大频率要小。但由于其对称的特性,十分适合于电机控制。相位修正PWM 模式的PWM 精度固定为8 比特。计时器不断地累加直到MAX,然...

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



6. 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_2017112736343.html 发布时间: 2017-11-27



单片机的Flash E2prom Ram区别

存储器分为两大类:ram和rom。 ram就不讲了,今天主要讨论rom。 rom最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了prom,可以自己写入一次,要是写错了,只能换一片,自认倒霉。人类文明不断进步,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次。历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意的修改rom中的内容了。 EEPROM的全称是“电可擦除可...
关键词: 单片机 Flash E2prom Ram

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



AVR的精确延时程序

C语言中,想使用精确的延时程序并不容易。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。实现的方法:建立一个delay.h的头文件:#ifndef __IAR_DELAY_H#define __IAR_DELAY_H#include#define   XTAL   8   //可定义为你所用的晶振频率(单位Mhz) #...
关键词: AVR 精确延时

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



AVR单片机程序设计架构

昨天在回家的火车上,带了一本《匠人手记》,看了几篇,受益匪浅。其中一篇讲到编程思路,也就是如何入手构建一个程序。我用C语言在原文的基础上稍微展开一下,以备日后查看。    简单的程序只要用简单的方式就可以了,我在此之前也只会这一种方式。也就是:void main(){    init();//初始化    while (1)    {        modu...

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



PIC C语言编程_PICC中变量修饰关键词

1)  extern  —  外部变量声明 如果在一个 C  程序文件中要使用一些变量但其原型定义写在另外的文件中,那么在本文件中必须将这些变量声明成“extern”外部类型。例如程序文件 code1.c 中有如下定义:bank1 unsigned char var1, var2;   //定义了 bank1 中的两个变量在另外一个程序文件 code2.c 中要对上面...

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



单片机裸编思考之消除软件延时

听了一次培训课-高质量C编程,受益匪浅。听过那次培训,我就在想,怎么形成一种自己的编程风格,怎么有一个自己的裸编架构?通过自己查阅书籍、资料、相关帖子,有一些收获,现记录如下,以便查阅。单片机的编程风格,我不想做过多的谈论,只要代码清晰,便于阅读,适合自己即可。推荐一本书-----编程匠艺之编写卓越的代码,很不错。单片机裸编架构,这个是新手往往最容易忽略的问题。因为新手刚开始只是注重C语法,单片机模块使用,等等。无可厚非,这些都是大厦的基石,没有这些,也无从讨论架构。所有的新手都是从如下架构开始,其中的函数都是阻塞式方式:main(){/****初始化函数*****/................
关键词: 单片机 软件延时

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



AVR单片机IO使用注意事项及结构全攻略

。例如 外部中断的唤醒功能。 AVR的C语言IO操作:AVR的C语言基于ANSI C,没有像51那样扩展了位操作(布尔操作),虽然汇编指令里面有SBI/CBI/SBIC/SBIS指令所以需要采用 位逻辑运算 来实现,这是必须要掌握的。IO口和功能寄存器的操作方法一样,但对于部分功能寄存器的读写有特殊要求,请参看手册。不必考虑代码效率的问题...
关键词: AVR单片机 IO使 结构

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




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