查看: 916|回复: 0

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

[复制链接]
  • TA的每日心情
    无聊
    2016-8-6 23:33
  • 签到天数: 61 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-11-28 15:44:08 | 显示全部楼层 |阅读模式
    分享到:
    看了一下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口没有配置好呢?下次再研究了
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 01:52 , Processed in 0.109235 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.