OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3405|回复: 11

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

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-5-18
在线时间
3 小时
发表于 2016-2-15 23:34:44 | 显示全部楼层 |阅读模式
23金钱
本帖最后由 STRAWBERRY 于 2016-2-16 16:20 编辑

老师要我用stm8s做一个延时时间可调的开关,也就是控制继电器通断(stm8便宜),相当于时间继电器,但我学的不是很好,一头雾水啊。
我的设想是是这样的:电路上电后由按键触发GPIO外部中断接通继电器,adc采用DMA方式并使用外部事件触发,马上采集电位器(调节延时时间的长短)2端的电压,根据采集到电压设定定时器定时时间,(0-30分钟)延时时间到达后触发定时器中断改变相应IO口电平,导通相应三极管驱动继电器动作。
我自己弄了几个51程序移植了一下一直行不通,所以想请各位大神们帮帮忙,给个程序思路啊,能帮忙想想程序就更加感谢了
都说论坛上大神多,感激不尽

你若安好,便是晴天。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-2-16 07:55:19 | 显示全部楼层
既然你有51的程序,移植应该没什么问题喔,不过也要看你的程序编写的模块化程度了,模块化好的话,移植是非常简单的
回复

使用道具 举报

55

主题

1231

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2624
金钱
2624
注册时间
2014-2-13
在线时间
514 小时
发表于 2016-2-16 09:02:46 | 显示全部楼层
你先看看IO配置,定时器配置这些是否正常吧
技术交流,Sell 中颖单片机,欢迎私信骚扰
回复

使用道具 举报

3

主题

177

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1602
金钱
1602
注册时间
2016-1-28
在线时间
265 小时
发表于 2016-2-16 09:06:26 | 显示全部楼层
帮顶。。。。。。
宠辱不惊看庭前花开花落去留无意望天上云卷云舒。
回复

使用道具 举报

70

主题

6686

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12620
金钱
12620
注册时间
2012-11-26
在线时间
3702 小时
发表于 2016-2-16 09:56:35 | 显示全部楼层
没弄过STM8  帮顶。。。
学无止境
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-5-18
在线时间
3 小时
 楼主| 发表于 2016-2-16 10:48:08 | 显示全部楼层
八度空间 发表于 2016-2-16 07:55
既然你有51的程序,移植应该没什么问题喔,不过也要看你的程序编写的模块化程度了,模块化好的话,移植是非 ...

我就想问问根据这个要求,我是不是程序思路有问题,别走进死胡同了
你若安好,便是晴天。
回复

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2016-2-16 10:57:04 | 显示全部楼层
规定要用电位器?如果是0-30分钟,用5位拨码开关就可以完成了
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-5-18
在线时间
3 小时
 楼主| 发表于 2016-2-16 11:00:49 | 显示全部楼层
小温 发表于 2016-2-16 10:57
规定要用电位器?如果是0-30分钟,用5位拨码开关就可以完成了

拨码开关没用过,那要怎么实现呢?
你若安好,便是晴天。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-5-18
在线时间
3 小时
 楼主| 发表于 2016-2-16 11:01:17 | 显示全部楼层
stm8的dma支持外部事件触发吗?
你若安好,便是晴天。
回复

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2016-2-16 11:57:49 | 显示全部楼层
STRAWBERRY 发表于 2016-2-16 11:00
拨码开关没用过,那要怎么实现呢?

用5个IO引脚,接这个5位拨码开关,读取这5个IO引脚的输入状态,5位拨码开关对应的十进制取值范围是 0 - 31 ,这样,就可以确定选择的是哪个时间值。。。接下来,根据时间值启动定时器,然后,控制继电器。。。
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-5-18
在线时间
3 小时
 楼主| 发表于 2016-2-16 12:13:40 | 显示全部楼层
小温 发表于 2016-2-16 11:57
用5个IO引脚,接这个5位拨码开关,读取这5个IO引脚的输入状态,5位拨码开关对应的十进制取值范围是 0 - 3 ...

这样倒是直接绕过了ad采样,正在写程序,思路很好,先谢了
你若安好,便是晴天。
回复

使用道具 举报

6

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2016-1-19
在线时间
38 小时
发表于 2016-2-16 13:54:15 | 显示全部楼层
建议还是用可调电阻做0-30分钟延时。相比拨盘开关,比如要设置24分钟,需要换算成二进制,方向还不能反了,比较麻烦。AD可以用DMA实时更新,建议加2个按键:K1开始/暂停、K2取消。上电默认【取消】,开关断;旋钮电阻到设置时间比如20分钟,按下K1,开始计时;在计时过程中按下K2则马上断开,计时清零;若在计时过程中按下K1,可重新调整设置时间,设置完后按下K1开始以新的时间计时。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-5 05:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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