AVR单片机GCC编程
javascript:window.open(this.src);" style="cursor:pointer;"/> | 1 x AT90S4433, Atmel 8 位AVR RISC处理器. |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 2 x 14脚 IC插槽 或者 1 x 28 脚 7.5mm IC插槽 这种28脚插槽要找到有点点困难,通常28脚插槽是14mm宽的,但是我们需要的是7.5mm的插槽. |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 1 x 10K 电阻 (颜色代码: 棕,黑,橙) 3 x 470 欧姆 电阻(颜色代码:黄,紫,棕) 1 x 1K 电阻 (颜色代码: 棕,黑,红) 1 x 220 欧姆 电阻 (颜色代码:红,红,棕) 1 x 4Mhz 晶震 2 x 27pf 陶电容 |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 用于编译器的任意种类的5脚插头/插座.我们通常买些连接器条,然后5个折成一段. |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 聚酯板. |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 1 x DB25 连接器 用于插到并口. |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 1 x LED |
javascript:window.open(this.src);" style="cursor:pointer;"/> | 一块模拟板. 我们在这里不用,但是如果你想做将来的AVR实验这是非重有用的.我建议你把微控制器与晶震和电容集中在聚酯板上,然后通过短电缆把它们的输入/输出脚连接到模拟板. |
安装编程器硬件
AT90S4433支持在线编程(ISP). javascript:window.open(this.src);" style="cursor:pointer;"/>简单说就是:你没有必要为了给单片机编程而移动单片机模块.你会看到可以用50-150欧元买到做好的编程器硬件,但没有必要为一个编程器更多地投资.采用Linux,uisp软件和免费的并口你就可以建立起一个非常好的简单的AVR编程器,也就采用一根简单的电缆连接而已.编程器电缆的线必须符合下列要求:
AVR端针脚 | 并口端针脚 |
---|---|
SCK (19) | Strobe (1) |
MISO (18) | Busy (11) |
MOSI (17) | D0 (2) |
Reset (1) | Init (16) |
GND | GND (18) |
电缆长度不超过70cm.
写入软件
在GCC的帮助下AT90S4433可以用一般的C语言编程. 了解一些AVR汇编很有用,但也不是非要不可.AVR C语言库的avr-libc-reference 讲述了libc的大部分函数. Harald Leitner写了一个关于如何使用AVR和GCC的带有大量有用的例子的文档(haraleit.pdf, 286Kb, 原作 http://www.avrfreaks.net/AVRGCC/). 从Atmel公司的网页, (www.atmel.com, 找到: avr products -> 8 bit risc-> Datasheets), 你可以下载完整的数据资料 (复制到本地: avr4433.pdf, 2361Kb) . 它描述了所有的寄存器以及如何使用CPU.使用4433的时候有一点要注意的是它只有128字节的RAM和4K字节的EEPROM.这就意味着你不能定义大的数据结构和字符串.程序中不能采用深入的嵌套调用或者是递归调用. 就像写
char string[90];
这样一行就已经太大了. 一个整数是16bit,如果需要一个小的整数你可以采用
unsigned char i; /* 0-255 */
你将非常惊讶你的程序是多么大.它真是一个强大的处理器.
理论不如实践,我们将写一个程序让我们的LED每隔0.5秒闪烁一次.虽然不是很有用不过也是一个非常好的开头,而且可以用来测试我们的开发环境和编程器.
void main(void)
{
/* enable PD5 as output */
sbi(DDRD,PD5);
while (1) {
/* led on, pin=0 */
cbi(PORTD,PD5);
delay_ms(500);
/* set output to 5V, LED off */
sbi(PORTD,PD5);
delay_ms(500);
}
}
编译和载入
在开始之前确认一下PATH中包含了/usr/local/atmel/bin路径,必要的话编辑你的.bash_profile或者.tcshrc,添加如下内容:export PATH=/usr/local/atmel/bin:${PATH} (for bash)
setenv PATH /usr/local/atmel/bin:${PATH} (for tcsh)
# /sbin/lsmod
parport_pc
ppdev
parport
modeprobe parport
modeprobe parport_pc
modeprobe ppdev
为了给普通用户ppdev接口写权限,运行一次下面的命令:
chmod 666 /dev/parport0
确保没有在并口上的打印守护进程运行.如果你运行了就要在你连接编程器电缆前停止这个进程.现在编译和单片机编程的所有准备工作都做好了.我们的测试程序包(avrledtest-0.1.tar.gz)
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论