收藏官网首页
查看: 25994|回复: 4

[资料] 关于GOKIT2的二次开发----定时开关功能的问题

1

主题

6

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
跳转到指定楼层
楼主
发表于 2017-11-19 16:27:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
         本人是一名新手开发者,拿到gokit2的开发板后向论坛里的前辈们学习了下二次开发。目前已经实现了控制A1口输出高低电平。现在想要学习定时开关功能。在搜索诸多资料后,决定使用定时器中断来实现。但结果却发现延时功能并未成功,让我很是苦恼。                 具体情况如下:先发上具体部分代码,见图片。
简单说明下:我设置了一个开关数据点,在开事件中初始化定时器4并启动,定时器4的时间目前设置为一常数用于测试。并把开灯函数放入定时器4的中断函数中。
测试结果:点击手机APP的“开”按键,测试的LED灯立即发光,没有任何延时。
提问:1.我测试了多个定时器,发现除了被GOKIT已经使用的定时器3,只有定时器4可以使用,对于GOKIT2板子,哪些定时器可以使用,哪些定时器已被占用了?
          2.在程序中,我只把LED开的程序放在定时器4的中断函数中,测试结果说明程序进入了定时器4的中断函数,但却没有任何延时,这是为什么?
          3.大神们还有什么其他思路来实现定时开关吗?
感谢各位的浏览和解答!!

QQ截图20171119161452.png (53.93 KB, 下载次数: 200)

手机APP开关触发事件

手机APP开关触发事件

QQ截图20171119161718.png (226.41 KB, 下载次数: 206)

定时器4的配置

定时器4的配置

QQ截图20171119161740.png (53.05 KB, 下载次数: 194)

定时器4中断函数

定时器4中断函数

321

主题

1054

帖子

4513

积分

论坛元老

Rank: 8Rank: 8

积分
4513
QQ
推荐
发表于 2017-11-19 17:11:46 | 只看该作者
1.gokit使用的是STM32F103C8T6,共有4个定时器TIM1~TIM4,生成的代码包使用了定时器2和定时器3
2.在收到0x01改为启动定时器试试
3.延时使用gizGetTimerCount,代码参考微信宠物屋的
void userHandle(void)
{
    uint8_t ret  = 0;
    static uint32_t thLastTimer = 0;

    currentDataPoint.valueInfrared = irHandle();

    if((gizGetTimerCount()-thLastTimer) > SAMPLING_TIME_MAX)
    {
        ret = dht11Read((uint8_t *)&currentDataPoint.valueTemperature, (uint8_t *)&currentDataPoint.valueHumidity);
        if(ret != 0)
        {
            printf("Failed to read DHT11\r\n");
        }
                               
        thLastTimer = gizGetTimerCount();
    }
}

点评

非常非常感谢大神的解答,已经解决了我的问题。 原来是我的代码忘记使能定时器了,现在看来也是挺蠢的哈哈。  详情 回复 发表于 2017-11-19 18:59
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

1

主题

6

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
板凳
 楼主| 发表于 2017-11-19 18:59:00 | 只看该作者
bigfanofloT 发表于 2017-11-19 17:11
1.gokit使用的是STM32F103C8T6,共有4个定时器TIM1~TIM4,生成的代码包使用了定时器2和定时器3
2.在收到0x0 ...

非常非常感谢大神的解答,已经解决了我的问题。
原来是我的代码忘记使能定时器了,现在看来也是挺蠢的哈哈。

1

主题

6

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
地板
 楼主| 发表于 2017-11-19 19:04:46 | 只看该作者
现在把改正后的代码发一下吧,也给做定时功能的小伙伴做个参考。

QQ截图20171119190142.png (63.96 KB, 下载次数: 206)

QQ截图20171119190142.png

QQ截图20171119190243.png (51.9 KB, 下载次数: 197)

QQ截图20171119190243.png

QQ截图20171119190307.png (208.14 KB, 下载次数: 202)

QQ截图20171119190307.png

36

主题

105

帖子

1086

积分

金牌会员

Rank: 6Rank: 6

积分
1086
5#
发表于 2019-4-25 20:24:12 | 只看该作者
注册成为机智云开发者,手机加虚拟设备快速开发
Garfieldang 发表于 2017-11-19 19:04
现在把改正后的代码发一下吧,也给做定时功能的小伙伴做个参考。

大佬,有工程文件吗   最近正在实现智能插座   卡在定时功能这里了  方便分享学习一下吗  感激不尽
精通C、C++、Java、C#、VB、HTML、Delphi、JavaScript、PHP等语言的拼写,熟练PhotoShop、Illustrator CS、CorelDraw、Flash CS、AutoCAD、Office等软件的卸载,掌握Windows Server、Unix、Lunix等系统的开关机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表