一般来说,单片机的使用要从基础的汇编语言开始讲起,即使使用C语言进行开发,也必须对内部的机器码实现非常熟悉,才能应付设计和调试中可能出现的各种情况。WINAVR是个免费的AVR 开发程序集,它以著名的自由软件GCC 为C/C++编译器。之所以选用WINAVR,是因为它是一组开放源代码的程序集,也是目前最好的自由软件之一。 下面是关于WINAVR的使用要点,更详细的情况建议参考芯艺的《AVR 单片机GCC 程序设计》。开发工具:
更适合采用高级语言开发是AVR 单片机最初设计时的目的之一。目前AVR 单片机高级语言发发工具主要有IAR C、WINAVR、ICCAVR、CodeVision、BASCOM-AVR(BASIC 语言)。IAR 是与AVR 内核协同开发的,很多对AVR 更适合C 语言开发方面的改进是根据IAR开发过程的,它也是ATMEL 公司推荐的C 语言编译器,但它的价格几呼让人难以接受,达到上万元人民币。ICCAVR 是国内AVR 主要推广单位双龙公司代理的C 编译器,它价格低廉,友好的界面把很多烦琐的项目管理和编译设置隐藏了起来,为此它受部分开发人员的欢迎。
CodeVision 也是个很不错的C 编译器,目前在国内也有一定数量的用户。Winavr 是个免费的AVR 开发程序集,它以著名的自由软件GCC 为C/C++编译器。下面所有章节我都会介绍如何使用WINAVR 开发AVR 单片机。GCC 编译器UNIX 上最原始的C 编译器叫CC(C Compiler C 编译器),源于此GNU 的C 编译器叫作GCC(GNU C Compiler),然而,随着GCC 支持语言的增加GCC 这个缩写的意义已演变成了GNU 编译器集合(GNU Compiler Collection),它是GNU 项目的一个产品,是个开放源代码软件。GCC 可编译多种语言,目前支持的语言有C、C++、Objective-C、Fortran、java 和Ada。这些高级语言程序通过编译程序前端(front-end)后产生解析树,之后与器件相关的后端(back-end)程序将它们解释成实际的可执行指令集。前端与后端是完全分开的,解析树是它们中间的产物。GCC 这样的设计使得任何一种语言只要通过合适的语法解析器产生符合格式的解析树,就可以产生GCC 后端程序所支持的所有器件上的可执行指令集。同样的,任何一种器件只要将树结构翻译成汇编,就可以使用GCC 前端所支持的所有语言。要承认的是,以上描述是理论化的,便于理解,实际操作并没有想象的那么简单。事实上前端和后端都不是孤立的。幸运的是AVR 的确得到了GCC 的支持,它也是GCC 支持的唯一一种8 位处理器。不仅如此,我们还可以在WINDOWS 平台上安装程序包WINAVR 来使用GCC 的AVR C/C++编译程序。
WINAVR 是一组开放源代码的程序集,用于ATMEL 公司 AVR 系列单片机的开发,它主要包含:
1. GNU 程序包Binutils
GNU Binutils 非常庞大,WINAVR 仅包含与AVR 相关的部分,有AVR 汇编器、连接器以及与机器指令相关的一些工具
2. GNU GCC 的C 和C++编译器。
3. AVR-LIBC
AVR-LIBC 是AVR 单片机C 运行时库, 它是为应用程序提供标准C 函数的连接时定位库。
另外WINAVR 还包含软件调试器、器件编程软件、文件格式转换工具等多个有用工具,这里不一一列出, 请参考WINAVR 说明文档。WINAVR 项目的WEB 地址是http://sourceforge.net/projects/winavr ,这里可以下载最新的版本,并可订阅邮件组。 邮件组是获取WINAVR 相关帮助信息的重要途径。一个简单的例子文件demo1.c :#i nclude
int main( void )
{
unsigned char i, j, k,led=0;
DDRB=0xFF;
while (1)
{
if(led)
PORTB|=0X01;
else
PORTB&=0XFE;
led=!led;
//延时
for (i=0; i<255; i++)
for(j=0; j<255;j++)
k++;
}
}
这是一个使接在PB0 口的LED 发光管闪烁的程序。使用Mfile 生成合适的makefile然后运行make all即可生成hex文件。
上一篇:AVR 单片机初值计算
下一篇:atmega8l直接驱动笔段式lcd驱动程序
推荐阅读
史海拾趣
对于基本二阶段低通滤波器电路,网友可能会有多方面的问题。以下是一些常见问题及其详细回答:
1. 基本二阶段低通滤波器电路的结构是怎样的?
回答:基本二阶段低通滤波器电路通常由两个一阶低通滤波器级联而成,每个一阶低通滤波器包含一个电阻和一个电容。具体来说,电路由两个电阻(R1, R2)和两个电容(C1, C2)组成。输入信号首先经过R1和C1组成的一阶低通滤波器,然后其输出再经过R2和C2组成的第二个一阶低通滤波器。这种结构可以有效滤除输入信号中的高频分量,只保留低频部分。
2. 如何计算二阶段低通滤波器的截止频率?
回答:二阶段低通滤波器的截止频率并非简单地将两个一阶滤波器的截止频率相加或平均。实际上,其截止频率与两个电阻和两个电容的值都有关。对于RC滤波器,单个一阶低通滤波器的截止频率为f_c1 = 1/(2πR1C1)和f_c2 = 1/(2πR2C2)。然而,对于二阶RC低通滤波器,其总截止频率通常使用以下公式计算:
随着技术的不断成熟和市场的不断扩大,Abbatron公司开始将目光投向国际市场。公司积极参与国际电子展会,与海外企业建立联系,逐渐打开了国际市场的大门。通过不断的市场拓展和国际化战略,Abbatron公司的品牌影响力逐渐提升,成为了国际电子市场上的一股重要力量。
倍(DBIC)公司始终关注社会责任和可持续发展。公司积极参与环保活动,推动绿色生产。同时,倍(DBIC)公司还关注员工福利和社区发展,通过慈善捐赠和公益活动回馈社会。这些举措不仅提升了倍(DBIC)公司的社会形象,也为公司的长期发展奠定了坚实基础。
近年来,Azoteq在传感技术方面取得了重大突破。其最新产品系列——ProxFusion®,是世界上第一个单芯片集成多传感器功能的解决方案。这一创新产品将多种传感功能集成在一个芯片上,为客户提供了更加便捷、高效的解决方案。ProxFusion®的推出,再次展现了Azoteq在传感技术领域的领先地位。
随着全球化进程的加速推进,E-Z-HOOK公司开始积极拓展国际市场。他们通过参加国际展会、建立海外销售网络等方式,将产品推向全球各地。同时,公司还积极寻求与国际知名企业的合作机会,共同开发新技术和新产品。这些努力使得E-Z-HOOK公司的品牌影响力逐渐扩大,在全球范围内树立了良好的声誉和形象。
我发现一个窍门,在EAGLE的原理图编辑器或者PCB编辑器的命令框输入Run Designlink,就会弹出一个产品搜索工具,可以输入产品编号来搜索你要的产品有没有货,价格好多等等信息。但是可惜不能通过双击搜到的产品来直接在电路图中放元件,如果有这个功 ...… 查看全部问答∨ |
我用dsPIC30F2012做一个A/D转换,正参考电压接在Vref+上,负参考电压接在Vref-上,VCC经过滤波后接在了AVDD上,现在AVss不知如何处理,因为要求转换的电压是有负电压的,我能不能直接将AVss接地。A/D转换的参考电压选用的是Vref+和Vref-。请前辈高 ...… 查看全部问答∨ |
file -> new -> project -> platform builder for ce 6.0 输入工程名后,点击OK windows embedded ce 6.0 os design winzard next -> 选中一个BSP后点击next -> 选中 PDA device后点击next -> 一路next下去 ...… 查看全部问答∨ |
|
选择HSI做为主时钟,16MHz void CLK_Init(void) { CLK_DeInit(); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); } //SPI初始化 void SPI_MyInit(void) { SPI_DeInit(); ...… 查看全部问答∨ |
|
------------------------------------------------------------------------------- Readme file for LaunchPadFirmwareUpdater2.0.exe LaunchPadFirmwareUpdater2.0.exe is a GUI based utility to update the emulator firmware of Texas Ins ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 新突破!超高速内存,为英特尔至强6性能核处理器加速
- 将vRAN站点整合至单服务器,助力运营商降低总体拥有成本
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?