打印
[活动]

EFM8BB1测评---外部中断

[复制链接]
1008|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wgtwgtwgt 于 2019-12-2 17:52 编辑

EFM8BB1LCK板子介绍及软件安装见帖子。本帖子主要学习外部中断例程。
打开simplicity studio软件,按下图所示点击:

点击上图的New Project后,弹出对话框,按下图所示点击:

点击上图的Next后,弹出例程导入对话框,选择EFM8BB1 ExternalInterrupts例程:

点击上图的Next,弹出对话框:

保持默认,直接点击上图中的Next,弹出对话框:

保持默认,直接点击上图的Finish,则例程代码就加载到simplicity studio中了。展开工程目录左侧的src文件夹图标,可以看到.c文件在该目录下,其中EFM8BB1_ExternalInterrupts.c文件包含main()函数,Interrupts.c文件包含中断服务函数:

   
得益于silicon labs完善的注释说明,在EFM8BB1_ExternalInterrupts.c文件开头的注释中,详细说明了该例程的功能、硬件连接及使用方法:

为了与硬件相互佐证,翻看EFM8BB1LCK板子的原理图,可见Button0按键,即用户按键,挂载在P0.2引脚上,并且默认是上拉的:


程序中是怎样设置的呢?按下图右击main()函数中的enter_DefaultMode_from_RESET函数名,然后选择Open Declaration:


这时,会跳转到enter_DefaultMode_from_RESET()函数的实现代码中。其中,有EXTINT_0_enter_DefaultMode_from_RESET()函数,右击其函数名转到该函数的实现代码:


从上图可见,P0.2确实复用为外部中断0引脚,并且是低电平触发的。这样,按下Button0按键,就进入外部中断0服务函数,在该中断服务函数中翻转LED引脚电平:




下面,编译工程,点击下图所示的图标:

注意,若simplicity studio软件第一次使编译工程,则会弹出如下图所示的对话框,需要填写许可文件,因为该IDE以Keil作为其后台编译器:

点击上图中的this form链接,会打开Keil网站,按照要求填写一些基本信息,则Keil就会往所填写的邮箱中发送一个免费的license。正确输入license后,点击上图的OK按钮,会出现许可文件成功添加对话框:

接着,就可以成功编译工程了。然后,点击下图所示的图标,将路径定位到hex所在的文件:

然后点击下图所示的Program按钮,烧录hex文件到单片机:




运行效果:


多次测试未见误触发问题,外部中断效果还不错。


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

191

帖子

3

粉丝