[Atmel] 跑一下SAM4N例程(六):时钟3重配时钟

[复制链接]
ddllxxrr 发表于 2015-3-1 12:16 | 显示全部楼层 |阅读模式
本帖最后由 ddllxxrr 于 2015-3-2 20:33 编辑

在Atmle Studio6.2环境中插入开发板,则自动弹出开发板界面,这时可直接打开例程。



今天的例程是这样,让用户按键,每按下一个键输出的时钟都会改变,大概按四次左右,又恢复起始状态。

这里是判断按键按下和抬起的函数:

  1. static void wait_for_switches(void)
  2. {
  3.         do {
  4.         } while (ioport_get_pin_level(GPIO_PUSH_BUTTON_1));
  5.         mdelay(1);
  6.         do {
  7.         } while (!ioport_get_pin_level(GPIO_PUSH_BUTTON_1));
  8.         mdelay(1);
  9. }
而所有的晶振的源宏定义,都在genclk.h中:


  1. enum genclk_source {
  2.         GENCLK_PCK_SRC_SLCK_RC       = 0, //!< Internal 32kHz RC oscillator as PCK source clock
  3.         GENCLK_PCK_SRC_SLCK_XTAL     = 1, //!< External 32kHz crystal oscillator as PCK source clock
  4.         GENCLK_PCK_SRC_SLCK_BYPASS   = 2, //!< External 32kHz bypass oscillator as PCK source clock
  5.         GENCLK_PCK_SRC_MAINCK_4M_RC  = 3, //!< Internal 4MHz RC oscillator as PCK source clock
  6.         GENCLK_PCK_SRC_MAINCK_8M_RC  = 4, //!< Internal 8MHz RC oscillator as PCK source clock
  7.         GENCLK_PCK_SRC_MAINCK_12M_RC = 5, //!< Internal 12MHz RC oscillator as PCK source clock
  8.         GENCLK_PCK_SRC_MAINCK_XTAL   = 6, //!< External crystal oscillator as PCK source clock
  9.         GENCLK_PCK_SRC_MAINCK_BYPASS = 7, //!< External bypass oscillator as PCK source clock
  10.         GENCLK_PCK_SRC_PLLACK        = 8, //!< Use PLLACK as PCK source clock
  11.         GENCLK_PCK_SRC_MCK           = 9, //!< Use Master Clk as PCK source clock
  12. };
而主函数的循环如下:


  1. //第一个输出时钟为PLL时钟


运行结果当我按下板子上的KEY0键时,PA6刚开始是系统时钟,然后减半,然后又是一个新时钟,接着又是外新时钟。然后回到开始。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2403

主题

6994

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部