小白求助,大神们帮帮忙吧(名字一定要长。。。。。)

2019-07-19 21:23发布

本帖最后由 STRAWBERRY 于 2016-2-16 16:20 编辑

老师要我用stm8s做一个延时时间可调的开关,也就是控制继电器通断(stm8便宜),相当于时间继电器,但我学的不是很好,一头雾水啊。
我的设想是是这样的:电路上电后由按键触发GPIO外部中断接通继电器,adc采用DMA方式并使用外部事件触发,马上采集电位器(调节延时时间的长短)2端的电压,根据采集到电压设定定时器定时时间,(0-30分钟)延时时间到达后触发定时器中断改变相应IO口电平,导通相应三极管驱动继电器动作。
我自己弄了几个51程序移植了一下一直行不通,所以想请各位大神们帮帮忙,给个程序思路啊,能帮忙想想程序就更加感谢了
都说论坛上大神多,感激不尽
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
STRAWBERRY
1楼-- · 2019-07-20 21:25
 精彩回答 2  元偷偷看……
STRAWBERRY
2楼-- · 2019-07-21 00:45
stm8的dma支持外部事件触发吗?
小温
3楼-- · 2019-07-21 04:24
 精彩回答 2  元偷偷看……
STRAWBERRY
4楼-- · 2019-07-21 04:48
小温 发表于 2016-2-16 11:57
用5个IO引脚,接这个5位拨码开关,读取这5个IO引脚的输入状态,5位拨码开关对应的十进制取值范围是 0 - 3 ...

这样倒是直接绕过了ad采样,正在写程序,思路很好,先谢了
大雄先生
5楼-- · 2019-07-21 07:47
建议还是用可调电阻做0-30分钟延时。相比拨盘开关,比如要设置24分钟,需要换算成二进制,方向还不能反了,比较麻烦。AD可以用DMA实时更新,建议加2个按键:K1开始/暂停、K2取消。上电默认【取消】,开关断;旋钮电阻到设置时间比如20分钟,按下K1,开始计时;在计时过程中按下K2则马上断开,计时清零;若在计时过程中按下K1,可重新调整设置时间,设置完后按下K1开始以新的时间计时。

一周热门 更多>