3059|0

606

帖子

20

TA的资源

一粒金砂(高级)

楼主
 

Atmel SAM4L单片机之旅(Keil 版) 1、利用循环延时来闪烁LED小灯 [复制链接]

本帖最后由 ketose 于 2015-1-13 11:14 编辑

      拿到这个开发板有一段时间了,一直没有时间来做详细的测评,期间小菜也催问了几次,真是不好意思。终于有了时间来做这件事,于是打算写几篇,当然从最简单的开始,一步一步的深入,最后把整个开发板的所有模块都能一一做个尝试,分享给大家。
     目前这块板子和芯片所能参考的只有英文手册,IDE可以使用Atmel Studio、IAR、Keil。网上有的教程主要以Atmel Studio、IAR为主,我们今天选择大家用的比较多的Keil + 寄存器,一来是因为Keil是ARM推的开发工具,二来是也尝试了用IAR,发现IAR的下载仿真速度慢的让人难以想像。至于Atmel Studio本人机器上没有,也懒得去再装一个再去了,还要去熟悉Atmel Software Framework,搞起来让人头大,还是寄存器更直接,更能了解MCU的设计思想和运做机制。
废话不多说,来看今天的例子。
     1、电路图

2、实现思路
       PIO的引脚是复用的,但在这里我们直接使用PIO控制器控制引脚的电平就可以了。可以通过向PIO_ODERS、PIO_ODRC写入特定的值来直接控制引脚的电平。然后,通过让程序执行一个次数较长的空循环就可以实现延时功能。
3、Keil里创建项目

先择SAM4LC4C芯片

项目配置

4、新建文件输入下面的代码:
#include
#define PIOC   GPIO->GPIO_PORT[2]
//延时函数
void delay(int num)
{
       volatile int i = 0;
       for(i=0;i<1024*num;i++);
}
int main()
{
     /* 使能PA07引脚 */
     PIOC.GPIO_GPERS = GPIO_PC07;
     /* PA07输出驱动使能 */
     PIOC.GPIO_ODERS = GPIO_PC07;
     /* PA07上拉使能 */
     PIOC.GPIO_PUERS = GPIO_PC07;
   
     while(1)
     {
         /*PC07清0,输出低电平*/
         PIOC.GPIO_OVRC = GPIO_PC07;
     /* 延迟 */
         delay(4);
     
         /*PC07置1,输出高电平*/
         PIOC.GPIO_OVRS = GPIO_PC07;
         /* 延迟 */
        delay(4);
     }
     return 0;
}
保存上面的代码为main.c,并把文件添加到项目中。编译并下载至开发板,小灯已经开始闪烁了。
实验视频:

下节:2、利用定时器来闪烁LED小灯



点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表