5个职位/ 0个新职位
最后发表
TreehouseAndSky
离线
最后看到:7年3个月前
加入:2014-03-13 45
包含链误差

你好,

当我试图改变睡眠模式的钩子时,我在我的include链中遇到了一个错误。

正如在睡眠模式手册中所描述的,我的中断设置了一个标志(event1_flag),我们在钩子#2中检查它,如果它设置了另一个标志(event1_flag_sync),它在钩子#1中检查。

两个标志都在app_ourproject_project .h中声明(第二个标志在保留内存中使用__RETAINED)。

当我们想要包含app_ourproject_project .h时,我们会在include链中得到一个错误,声明:
error in include chain (gap.h): using未声明的标识符'SMPM_ADDR_TYPE_STATIC' "

我们应该把国旗放在别的地方吗?
什么好主意吗?

WT_Dialog(未验证)
你好,

你好,
你们是在应用程序中使用扩展睡眠模式还是深度睡眠模式?

TreehouseAndSky
离线
最后看到:7年3个月前
加入:2014-03-13 45
如果标志声明

如果在钩子#2中设置了指示应用程序进入休眠状态的标志,钩子#1将调用这些函数
“app_set_deep_sleep()”和“app_ble_ext_wakeup_on ()

所以深度睡眠和直到中断发生的睡眠特征。

WT_Dialog(未验证)
你好,

你好,
编译错误在我看来很奇怪。SMPM_ADDR_TYPE_STATIC似乎与您正在做的事情无关。
可以共享钩子#1和钩子#2中的代码吗?

TreehouseAndSky
离线
最后看到:7年3个月前
加入:2014-03-13 45
走读生bool button_Pressed

我们绕过了这个问题,为gap.h中的变量提供了smpm.h中设置的变量的精确值,而不是将它们设置为变量本身。

走读生bool button_Pressed_Sync_Flag;
走读生bool ButtonFlag;
外面的空白app_adv_stop ();
外面的空白app_adv_start ();
extern int计数器;
走读生bool changedIn2;

钩# 1
静态内联bool app_asynch_trm(void)

Bool ret = false;
如果(changedIn2)

如果(button_Pressed_Sync_Flag)
{/ / naar sleepmode
app_adv_stop ();
app_set_deep_sleep ();
/ /钉functies
app_ble_ext_wakeup_on ();
/ /拉斯
button_Pressed_Sync_Flag = false;
/ / app_adv_stop ();

其他的
{//uit sleepmode willen gaan
app_ble_ext_wakeup_off ();
/ /钉functies
app_adv_start ();
app_disable_sleep ();


changedIn2 = false;
ret = true;

返回受潮湿腐烂;

钩# 2
静态内联bool app_asynch_proc(void)

Bool ret = false;

如果(ButtonFlag)

计数器+ +;
如果计数器% 2)

//gedrukt, maar false, dus zet hem in sleepmode
button_Pressed_Sync_Flag = true;
/ / app_adv_stop ();
changedIn2 = true;

其他的

button_Pressed_Sync_Flag = false;
/ / app_adv_start ();
changedIn2 = true;

ret = true;
ButtonFlag = false;

返回受潮湿腐烂;

ButtonFlag, Button_Pressed_Sync_Flag, changed2和counter都被保留(在我们的项目文件app_filename_proj中)。