46524|10

1298

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

关于发帖这点事…… [复制链接]

  这几天确实发现帖子好少,翻来翻去就是前些日子的,再不就是什么资料大放送的,其实这些资料我基本上不会去下载,或许没有实物啊原理图什么的,好像派不上用场,其实吸引人的帖子我个人认为提出些实际应用中的问题然后大家一起分析交流怎么解决,但是看到有很多同学贴上来很长的程序,一般程序太长是没有多少人有耐心去看的,所以个人认为实际认为应该是这样如:
1.如何把DMX512(RGB通道)数据用单片机串口接收并准确取出,详细思路应该是怎么样的?   //当然有没有人回答是另外回事!

2.AVR的两路ADC转换需要轮流切换才能正常使用,那切换需要等待多长时间?需要舍弃第一个数据吗? //我是舍弃了

3.单片机控制镍氢电池PWM恒流充电时,比如3.6V的电池,充满为4.35V左右,比如程序为大电流300MA充电和涓流充电50MA以4.2V为界点,为何4V以下测得充电电流是300MA,但超过4V以后电流在几十MA和几百MA之间不断变化,虽然知道这种现象应该是电池电压升高而使充电电流变小,但是PWM为了恒流而不断在调整输出电流却又达不到而导致电流在不断变化,如何更好的解决这种现象?PWM恒流充电的完美思路应该是怎样的?

4.经常单片机都有多个任务切换,而每个任务可能运行的时候都需要死循环,而切换任务就必需跳出循环,除了break;大家经常怎么弄?分享一下经验?

以上问题大家不妨讨论……

此帖出自单片机论坛

最新回复

多任务要是不想上系统的话定时器或者中断就是最好的选择了   详情 回复 发表于 2014-5-29 17:32

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
同感,提问题的同学不曾做过深入的研究,自己想问什么自己也不太清楚,一心想把项目做完又不肯付出努力研究问题,应付了事所以很无语.

此帖出自单片机论坛
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

板凳
 
本帖最后由 jishuaihu 于 2014-5-28 10:42 编辑

楼主分析的很有道理,提出的意见也很有见解,值得发帖提问的人参考,建议置顶!
针对楼主提出的几个问题,我觉得可以分为两类:
一类是提供思路的,就是我不知道如何去处理一个问题,需要大家讨论,提供一种思路。具体的实现还得靠自己去做。我刚参加工作的时候就为按键和显示的处理问题请教过我们的领导,受益匪浅,至今受用,而跟我一块去的是按自己的思路做的,刚开始做的还可以,但是随着功能的增加,程序维护起来越来越复杂,最后又花大力气改的结构。这说明思路其实对一件事的处理是很重要的,但是这要求提问者从全局的角度去考虑,去提问,很可能有意想不到的收获。与思路类似的还有方案的讨论,如果对自己的方案没有把握,不妨把方案的要求说出来,让大家都参与讨论一下。有的人只是说方案的一小部分,很有可能你这一部分在整个方案中是错误的,或者有更好的方案。另外一类问题就是具体的应用。比如楼主的前两个问题,这样的问题就需要提的细一些。芯片的具体型号具体功能等都要说的明白一些,因为不同的东西设置是不一样的,这样的问题需要有过相关经验的人去解决。比如楼主说的两路AD的切换时间,这个问题应该可以在数据手册里提到,如果没有提到的话只能是用过的人知道了,这样虽然不一定能解决问题,但不至于答非所问。

建议提问者能够把自己的问题大致归到这两类里面,按照这样的思路提问,以方便大家帮忙解决问题

至于楼主提的问题呢,前两个我不清楚,没有具体用过,我说一下第四个问题,这个显然属于思路型的。如果不适用操作系统而需要不同任务切换,我一般不用break的。一般情况下不同的任务是由不同的执行条件的,可以在每个任务里加上判断条件,就在主程序里面设置一个大循环,大循环中每次按顺序执行每一个任务,执行任务的时候如果条件不满足则直接跳出。任务的条件可以由别的任务或者中断产生,一些特殊的任务在中断中完成。在大循环中可以使用if……else if……else if……为不同的任务分配一定的优先级。大概就是这样了,反正用起来不如才使用操作系统方便,但也属于模块化设计,使用起来还是比较灵活的!
此帖出自单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

4
 

3.电池充电电路都比较简单,一般没有单片机控制,电流不需要很准,保证不过充过放就是了,保护板成本的原因.
4.尽量不用死循环才是王道.
此帖出自单片机论坛
 
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

5
 
其实以上的问题也是我想问的问题,楼上说的没错,提问能得到好的思路指引是最重要的……
此帖出自单片机论坛
 
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

6
 
到了while(1)中一般就跳不出来了,有两种方法可以出来:
1.中断的方式,你将你的按键扫描放在中断里,定个1us的定时
2.在while(1)里面加入break;就可以跳出循环
此帖出自单片机论坛
 
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

7
 
3、对于快速充电,一般判断电池正常后进入大电流充电,当电池电压的变化率反向时,进入涓流充电。快速充电时电池的电压,由充电率决定的(当然也与电池有关)。
   “电流在几十MA和几百MA之间不断变化”,这个充电器是脉冲式的涓流充电。

4、如果使用操作系统,任务交给操作系统了。
不使用操作系统时,中断是一个处理任务的很好办法。
如果不使用中断处理时,可以设置多个定时器分别产生不同的定时,当定时到,查询任务。不同的任务由不同的定时间隔查询。
此帖出自单片机论坛
 
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

8
 
还有ICCAVR下的延时函数好像要自已写,不像WINAVR那样直接调用,而且好像不怎么准!
此帖出自单片机论坛
 
 
 

回复

1944

帖子

32

TA的资源

纯净的硅(高级)

9
 
提问和分享都是一种学问
此帖出自单片机论坛
 
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

10
 
DMX512的RGB控制器发送的数据包,用单片机把数据包中的数据一个个准确的取出来?
本人知道:数据包首先88us的低电平,随后就是起始码0x00,紧接着就是R通道数据,G通道数据,B通道数据……

但是试了很多种方法没有成功,包括用定时器检测88US低电平,然后在串口接收中断中地址加1,此时接收的数据0为超始码,1.2.3分别为R,G,B的数据,但是实际出来的效果要不就是R,G,B的LED闪,要不就全亮,完全不在可控状态,据说是AVR晶振频率不够,后面我加上16M的晶振还是不能正确分离出数据,所以思路一直比较混乱……

对于单片机接收数据包大家有什么好的建议?
此帖出自单片机论坛
 
 
 

回复

774

帖子

2

TA的资源

纯净的硅(中级)

11
 
多任务要是不想上系统的话定时器或者中断就是最好的选择了
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表