Atmel SAM4S Xplained Pro建立工程之IO与PWM

作者: jofficer
上传时间为: 2014-11-28 03:44 PM
2014-11-28
阅读:

看了一下sam4s提供的示例程序,不多,只有13个,而且看起来都很高大上的样子,那就来试试asf,从最基本的IO驱动开始,体验一下自己建立工程的过程。中间遇到了一些问题,让我对ASF和atmel studio有了新的看法。这里面更多的是一些零碎的经验,分享给大家。

首先新建工程时有很多选项,其中上面两个是基于C的可执行文件。那这两个有什么区别呢?

我们先新建一个asf board项目,但是不选板,看看会怎么样?结果只选元件4sd32c,是不能往下走的,会提示必须选择一个板子,那就只好选我们的xplained了。

再换个方式,我们试试第二种。gcc executable project,尝试一个iotest,生成的代码就很清爽了,啥都没有。

添加asf的时候还会出来警告,说没有板子就不能用asf。

不过开始没选也没问题,点击上面的确认后会出来界面选的。

选好之后会提示要添加哪些东西。确认即可。

不过这样的做法和直接选板有一个区别,就是直接选板出来的就自带按键切换LED的代码,而这种main里面就是空的。

然后我们尝试添加pwm功能,开始受G53影响,选了TC,看了半天没找到pwm选项。回过去,发现sam4s有单独的PWM单元的呢。根据quick guide的要求,添加了PMC。然后加上下面的代码

pwm_channel_t pwm_channel_instance;

pmc_enable_periph_clk(ID_PWM);

pwm_channel_disable(PWM, PWM_CHANNEL_0);

pwm_clock_t clock_setting = {

.ul_clka = 1000 * 100,

.ul_clkb = 0,

.ul_mck = 48000000

};

pwm_init(PWM, &clock_setting);

pwm_channel_instance.ul_prescaler = PWM_CMR_CPRE_CLKA;

pwm_channel_instance.ul_period = 100;

pwm_channel_instance.ul_duty = 50;

pwm_channel_instance.channel = PWM_CHANNEL_0;

pwm_channel_init(PWM, &pwm_channel_instance);

再写一个pwm_channel_enable(PWM, PWM_CHANNEL_0);

编译通过,下载,可是可是EXT1 的pwm口就是不出波形!!!是不是IO口没有配置好呢?下次再研究了

作者其它经验
全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示