基于硬件的C(C++)语⾔程序设计教程2:应⽤AtmelStudio
学习C语⾔
本系列⽂章希望探讨以硬件为平台讲述C(C++)知识的⼀个新的途径,改变⽬前⼤多数C语⾔教程仅注重C语⾔本⾝的语法规则,⽽脱离其应⽤环境的现状。希望读者通过本教程的学习,能够⽴刻学以致⽤,真正将所学知识应⽤到项⽬实践中。
开发环境:Atmel Studio 7.0
硬件平台:Microchip AVR ATmega168PA
参考教材:C++程序设计(第3版) 谭浩强编著,清华⼤学出版社
备注:教程仅适合初学者,⾼⼿请绕过
本⽂讲述使⽤Atmel Studio演练“C++程序设计(第3版) 谭浩强编著”教材中例程的⽅法,当然也可以使⽤其它的IDE环境去演练这些例程。写作本⽂的⽬的是使读者,在C语⾔学习的开始阶段,不必分⼼于其它IDE环境,⽽专注于C语⾔本⾝,在本系列教程的后半部分,将应⽤C(C++)语⾔直接针对ATmega168PA进⾏应⽤设计,这样的安排可以保证读者在整个学习过程中,使⽤同⼀种开发环境。
⼀、项⽬的建⽴
可以按照如下步骤建⽴项⽬。
1、启动Atmel Studio,如下图所⽰。
2、⽂件-新建-项⽬,如下图所⽰。
3、在接下来出现的对话框中,选择“GCC C Executable Project”项⽬类型,在“名称栏”中指明项⽬名称,在“位置栏”中指明项⽬的存储路径。在这⾥特别需要注意的是“名称栏”和“位置栏”中输⼊的内容,需遵循以下规则:只能由字母、数字和下划线构成,且不能以数字开头。如果违反上述规则,会导致计算机仿真不正常。
4、在接下来出现的对话框中,选择单⽚机类型,读者⼀定能够猜到,我们选择的单⽚机类型为ATmega168PA。上述设置完毕后,我们点击“OK”按钮,Atmel Studio就会为我们⾃动⽣成项⽬了。
⼆、项⽬的配置
如果希望使⽤计算机进⾏程序仿真,还需进⼀步设置,步骤如下:
1、在“解决⽅案资源管理器”中,⽤右键选择项⽬名称,在弹出的菜单中,选择“属性”。
2、在出现的“属性”设置⽂件中,选择“Toolchain(⼯具链)”-“Optimization(优化)”-“None(-O0)(不优化)”,如下图所⽰。
3、选择“Tool(⼯具)”-“Selected debugger/programmer(选择调试编程器)”-“Simulator(仿真)”。上述设置完毕
后,需要对“属性”设置⽂件进⾏保存操作。
三、教材例程的改进
在完成上述步骤后,就可以对教材中的例程进⾏演练了,我们以教材P6页,例1.2为例,进⾏说明。先看下原始程序如下所⽰,程序开始包含了头⽂件“iostream”并使⽤命名空间std,这是典型的C++⽤法,其⽬的在于在后⾯的程序中使⽤cin和cout,cin和cout是标准的输⼊输出语句,其默认所指的标准输⼊设备是键盘,标准输出设备是显⽰器。这个程序的功能就是从键盘上输⼊2个数字,然后进⾏加法运算,最后在显⽰器上输出结果。
#include <iostream>
using namespace std;
int main()
{
int a, b, sum;
cin >> a >> b;
sum = a + b;
cout << "a + b = " << sum << endl;
return 0;
}
现在的问题就来了,我们现在是仿真程序在ATmega168PA单⽚机上运⾏,即没有显⽰器,⼜没有键盘,该如何操作cin和cout 呢?实际上cin和cout是可以重定向的,⼀般借⽤于单⽚机的串⾏⼝,这个就⽐较复杂了,我们将在以后探讨,现在采⽤避讳cin和cout是最好的⽅法。⼤家,先看⼀下改进的程序。
#include <avr/io.h>
int main(void)
{
int a, b, sum;
a = 1;
b = 2;
while (1)
{
sum = a + b;
}
}
通过分析程序,我们可以看出程序⽤AVR的标准输⼊和输出头⽂件代替“iostream”,在整个程序中不出现cin和cout,但是程序中增加了while(1)语句,我们稍微解释⼀下,while(1)是⽆限循环的意思,就是程序进⼊while(1)后,会反复执⾏while(1)中的语句,永不退出(当然,前提是需要给单⽚机供电的情况下)。
再看⼀下程序的结构,实际上⾮常简单,就是变量定义,变量赋值,⽆限循环(逻辑处理),如下图所⽰。
四、例程的调试
程序编写完毕后,可以按照如下步骤进⾏程序的调试⼯作。
1、保存程序⽂件,对程序进⾏编译操作,其命令按钮如下图所⽰。编译需要⼀定的时间,我们只需等待即可。
c语言如何去学
2、如果编译后,Atmel Studio提⽰错误,我们需要将错误改正,现在⼤家改正错误的⽅法,就是仔细和教程中的程序进⾏对⽐,查错误的原因。
3、编译没有错误后,我们在while语句的最后的“}”括号上打上断点,如下图所⽰,⽅法很简单,就是
在箭头所指的位置,⽤⿏标单击即可。现在解释⼀下断点的含义,实际上很简单,就是说程序执⾏到带有断点的语句后,程序会停下来,这时我们可以观察程序的各种运⾏状态,包括变量的取值等等。
4、上述设置完毕后,我们就可以让程序运⾏了,点击⼯具栏的“调试”按钮,如下图所⽰。
5、程序运⾏后,会停在我们设置断点的位置,此时,我们就可以通过局部变量窗⼝观察变量的值了,如下图所⽰。我们可以看到,程序已经正确计算出sum的值。
6、此时我们希望计算“2+3”的值,该如何操作呢?⽅法很简单,直接在“局部变量”窗⼝中将a的值调整为2,将b的值调整为3,然后再次点击“调试”按钮,就可以看到“2+3”的值了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。