- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 SAM L21 Xplained Pro B 中使用超低功耗时钟 OSCULP32K 将 RTC 配置为计数模式,使用 ASF。为了对其进行测试,我按照快速启动 RTC 计数轮询示例进行操作,该示例通过将 RTC 计数与给定周期进行比较,每 2000 毫秒切换一次 LED0。
在示例中,RTC_CLOCK_SOURCE 使用 RTC_CLOCK_SELECTION_ULP1K。当我将其更改为 RTC_CLOCK_SELECTION_ULP32K 时,LED 每 2000 毫秒切换 24 次,而不是每 2000 毫秒切换一次。
我在 conf_rtc.h 中有以下配置:
# define RTC_CLOCK_SOURCE RTC_CLOCK_SELECTION_ULP32K
然后,在 conf_clocks.h 中,我将主 CPU 时钟配置为 4Mhz。
/* SYSTEM_CLOCK_SOURCE_OSC16M configuration - Internal 16MHz oscillator */
# define CONF_CLOCK_OSC16M_FREQ_SEL SYSTEM_OSC16M_4M
# define CONF_CLOCK_OSC16M_ON_DEMAND true
# define CONF_CLOCK_OSC16M_RUN_IN_STANDBY false
/* Configure GCLK generator 0 (Main Clock) */
# define CONF_CLOCK_GCLK_0_ENABLE true
# define CONF_CLOCK_GCLK_0_RUN_IN_STANDBY false
# define CONF_CLOCK_GCLK_0_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC16M
# define CONF_CLOCK_GCLK_0_PRESCALER 1
# define CONF_CLOCK_GCLK_0_OUTPUT_ENABLE false
在 main.c 中,我按如下方式配置和初始化 rtc:
/* RTC configuration*/
void configure_rtc_count(void);
struct rtc_module rtc_instance;
// [initiate rtc]
void configure_rtc_count(void)
{
//! [set_conf]
struct rtc_count_config config_rtc_count;
//! [set_conf]
//! [get_default]
rtc_count_get_config_defaults(&config_rtc_count);
//! [get_default]
//! [set_config]
config_rtc_count.prescaler = RTC_COUNT_PRESCALER_DIV_1;
config_rtc_count.mode = RTC_COUNT_MODE_16BIT;
#ifdef FEATURE_RTC_CONTINUOUSLY_UPDATED
config_rtc_count.continuously_update = true;
#endif
config_rtc_count.compare_values[0] = 1000;
//! [set_config]
//! [init_rtc]
rtc_count_init(&rtc_instance, RTC, &config_rtc_count);
//! [init_rtc]
//! [enable]
rtc_count_enable(&rtc_instance);
//! [enable]
}
// [initiate rtc]
/* End RTC configuration*/
它被初始化后,main(void) 处的代码如下:
int main (void)
{
system_init();
configure_rtc_count();
/*test RTC - toggle LED0 each 2000 ms*/
rtc_count_set_period(&rtc_instance, 2000);
for (;;)
{
/*test RTC - if count match, toggle LED0 each 2000 ms*/
if (rtc_count_is_compare_match(&rtc_instance, RTC_COUNT_COMPARE_0))
{
/* Do something on RTC count match here */
port_pin_toggle_output_level(LED_0_PIN);
rtc_count_clear_compare_match(&rtc_instance, RTC_COUNT_COMPARE_0);
}
/*end test RTC*/
}
}
我找不到 config_rtc_count.compare_values[0] = 1000 的含义的解释;我将其更改为 32000,但 LED 不闪烁,如果我将其降低到 1000 以下,它会保持相同的切换率...这是什么意思?
在像http://www.atmel.com/Images/Atmel-42471-SAM-L21-ADC-Sampling-using-Low-Power-Features_ApplicationNote_AT12705.pdf这样的例子中似乎 RTC 仅使用 conf_rtc.h 中的#define RTC_CLOCK_SOURCE 配置。
但是在其他人中,例如 http://www.atmel.com/Images/Atmel-42111-SAM-RTC-Count-Driver-RTC-Count_ApplicationNote_AT03249.pdf它将 GLCK 2 定义为:
/* Configure GCLK generator 2 (RTC) */
# define CONF_CLOCK_GCLK_2_ENABLE true
# define CONF_CLOCK_GCLK_2_RUN_IN_STANDBY false
# define CONF_CLOCK_GCLK_2_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC32K
# define CONF_CLOCK_GCLK_2_PRESCALER 32
# define CONF_CLOCK_GCLK_2_OUTPUT_ENABLE false
有谁知道如何使用 ULP32k 配置 RTC 以保持正确的计数率?
最佳答案
感谢 Ed King 的建议,以下是目前关于此事的调查结果:
来自 Atmel Studio 7 的 SAM RTC 计数驱动程序(轮询)(ATSAML21J18A) 的快速入门使用 rtc_count_is_compare_match(&rtc_instance, RTC_COUNT_COMPARE_0)
每 2000 毫秒切换一次 LED0。
为了使其在正确的 2000ms 周期内工作,并且如果您想使用超低功耗时钟源,RTC 时钟源必须在 conf_rtc.h 中定义为:
# define RTC_CLOCK_SOURCE RTC_CLOCK_SELECTION_ULP1K
预分频器必须是RTC_COUNT_PRESCALER_DIV_1;
(参见问题中的配置)
无需在 conf_clocks.h 中定义 GLCK2。
compare_values[0] = 1000;
似乎是一种分辨率计数器,如果它低于选定的切换周期,则 LED 切换。如果它更高(例如 2001 年,周期为 2000 年),则比较似乎永远不会正确,因此 LED 不会切换。在任何情况下,它都不会改变切换频率。
更改 rtc_count_set_period(&rtc_instance, 2000);
中的值会导致切换周期发生变化。
OSCULP32k 振荡器有两种模式,一种为 32kHz,另一种为 1kHz。我想在这个例子中使用 32kHz 的时钟源,所以我改变了
#define RTC_CLOCK_SOURCE RTC_CLOCK_SELECTION_ULP32K
并尝试了不同的预分频器,但 LED 一直切换得太快。我假设发生这种情况是因为 set_period
函数需要 1kHz 时钟源才能在 ms 中工作,尽管更清楚的解释在这里可能会有用。
总而言之,使用 OSCULP32k 的目的是降低能耗,所以我想使用 ULP32k 和 ULP1k 模式都可以达到目标。
关于使用 ULPOSC32K 在 Atmel SAM L21 Xplained Pro 中配置 RTC - 频率错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47071404/
我不小心 checkin 了变更集中的一些变更,我不想交付它们。 如何在 RTC 中将待定变更集的变更移动到 Unresolved 变更? 最佳答案 通常的选项是“discard”,但这会删除更改(它
我不小心交付了更改集,其中包括一些在 RTC 中具有本地系统特定配置的附加配置文件。有没有办法在交付后丢弃这些更改?我的意思是这些更改不应该作为其他团队成员的传入更改。 如果有,请提供任何指针。 最佳
在 SVN 中,我们有一个选项可以下载特定版本的代码。这提供了下载旧版本代码的灵活性,也用于构建。 RTC 中是否有选项可以下载特定版本的代码? 最佳答案 是的:一旦你在流上完成了一个 repo 工作
我想根据给定日期现有流的状态创建一个新流。为此,似乎合乎逻辑的做法是在过去的日期/时间在源流中创建基线,但我还没有找到一种方法来做到这一点。 除了组件/流的当前状态之外,是否可以在任何时间创建基线或快
我从本地源目录中删除了一个文件和包,我正在尝试使用 RTC 替换它。当我查看“待定更改”时,该文件没有出现以便再次添加。此外,当我右键单击项目并选择“比较”时,没有选项可以与存储库中的最新版本进行比较
如何获取 RTC 工作项的原始记录版本值。 不是当前版本,而是记录 RTC 项目的原始版本。 假设当前版本是 2.0 但原始 RTC 项目是针对 1.0 记录的。我需要版本的最后一个值是 1.0。 注
我有一个存储库工作区,它有一个默认的流目标。我想编辑流目标并使其仅适用于少数组件。这可以从 RTC Eclipse 客户端实现。如何从 RTC 命令行界面实现相同的目的。请引用RTC 3.0.1.3告
如何从 RTC workItem 中读取历史记录。我想在更改表单历史记录之前和之后检查一些属性更改及其值。通过爵士 API。这怎么可能?请帮忙 。 最佳答案 Ragarding属性,你可以在“Work
IBM 有这个 200+ Mb 的大型 Eclipse 插件,我可以在其中访问 Eclipse 的所有内容和所有功能。 是否有一个更小更轻量级的 Eclipse 插件可用,它可以访问开发人员需要的信息
RTC 中的“项目范围”可见性是什么? 这是否意味着项目区域的成员可以查看此流或工作区? 最佳答案 当您创建一个 repo 工作区时,您可以选择“project scoped”,以便项目区域的成员能够
我在 Windows 2008 服务器上安装了(基本设置)RTC 3.0.1。设置顺利通过,一切看起来都是“绿色”的。但是,当我导航到项目区域以创建一个新项目区域时,出现以下错误消息: The ser
任何人都可以使用 oslc 或 REST 调用帮助我获取其中的迭代和冲刺列表以及该冲刺中的工作项 最佳答案 This thread报告查询迭代可能有点棘手: For the purpose of ob
我正在使用 RTC, 我的 friend 提交了他们的更改集以供审核,我是审核者。我在任何地方都找不到他们的变更集。 最佳答案 This thread总结过程: 项目配置: Precondition
我正在基于 http://jazz.net 中提供的研讨会开发 IBM RTC Advisors。 . 现在我正在尝试将其 OSGi 模块中提供的 xsd 文档移植到注释+jaxb。 这是 XSD 的
我正在寻找一个查询或一种方法来定义我自己的查询或方法来搜索提及特定用户的所有工作项。我该怎么做? 最佳答案 这取决于你所说的“提及”是什么意思。 您可以对属性“全文”进行简单查询,以获取代表您的用户的
我是 RTC 的新手,所以我需要一个尽可能简单的答案。 我最近接受了另一个团队成员的变更集,我需要从我的工作区中丢弃该变更集。我这里的问题是我接受的变更集没有交付,它仍在等待审查批准。如果我放弃变更集
如果我有两个开发流(称为Stream1,Stream2),并且我想将这两个流合并为一个流。 目前,这是我的操作方式: 创建一个新的Stream-Stream3。流3将包含Stream1和Stream2
我在 RTC 中有一个文件(称为 foo.c),我修改了该文件并将其与其他一些更改一起 checkin 变更集 (CS1)。然后,我再次修改该文件,并将其与其他更改一起 checkin 不同的变更集
问题 嗨,我使用以下表单重新混合了网络框架动态房间的模板: https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html
我正在将 STM32F072ZB 运行到待机模式。 MCU 大部分时间都处于休眠状态(每 1 小时唤醒一次以读取传感器)。由于看门狗正在运行,因此我使用 RTC 每 25 秒生成一次警报(看门狗周期约
我是一名优秀的程序员,十分优秀!