打印
[菜农群课笔记]

菜农夜话《酒鬼也学单片机》

[复制链接]
2888|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2010-12-20 01:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2011-3-26 18:04 编辑

酒鬼(9608662)  1:06:25
今天在想一个题目,睡不着
李冬发(632653918)  1:06:37
啥题目?
李冬发(632653918)  1:06:47
晕,酒鬼也学单片机?
酒鬼(9608662)  1:06:53
是啊
雁塔菜农<hotwc3@qq.com>  1:06:58
哈哈~~~
酒鬼(9608662)  1:07:13
关于寄存器的优化
李冬发(632653918)  1:07:20
真是有文化的酒鬼!
李冬发(632653918)  1:07:45
这也优化?不是编译器的事嘛?怎么也揽来做?
酒鬼(9608662)  1:08:18
李哥也不睡觉吗?
雁塔菜农<hotwc3@qq.com>  1:09:50
红杏系列已经比库优化许多
㊣殇飞宇龙㊣(120472710)  1:10:07
大叔,我正在画PCB图。M0的Nulink。
雁塔菜农<hotwc3@qq.com>  1:10:21

雁塔菜农<hotwc3@qq.com>  1:10:28
不睡了?
酒鬼(9608662)  1:10:32
嗯,就是深受红杏启发,才有优化的想法。
㊣殇飞宇龙㊣(120472710)  1:11:02
不画完,绝不睡了...
雁塔菜农<hotwc3@qq.com>  1:11:16
研讨会里有M0的Nulink的接线图的PDF
酒鬼(9608662)  1:11:25
强悍!俺决定睡觉,明天再想,哈哈
雁塔菜农<hotwc3@qq.com>  1:11:32
file:///E:/工具/腾迅qq/1270688699/Image/82O$SJEGI~%7D7DIXP2PG~%7DYQ.jpg
酒鬼(9608662)  1:11:41
yes
雁塔菜农<hotwc3@qq.com>  1:11:44

雁塔菜农<hotwc3@qq.com>  1:11:53
如何想法?
雁塔菜农<hotwc3@qq.com>  1:12:08
红杏看明白了?
酒鬼(9608662)  1:12:24
俺觉得这3句,
SysTicks.CTRL.Bits.CLKSRC = 1;
SysTicks.CTRL.Bits.TICKINT = 1;
SysTicks.CTRL.Bits.TICKENABLE = 1;
有三次LDR和STR动作。完全可以只做一个LDR和STR
㊣殇飞宇龙㊣(120472710)  1:12:30
谢谢,新唐提供Nulink的RE3EN成本太高。我打算整LC1AN。
雁塔菜农<hotwc3@qq.com>  1:13:14
晕,俺说过,大于1个位的控制应该用Regs
酒鬼(9608662)  1:13:54
对,但是需要一个看起来清楚的写法。
不能像马老师那样直接赋值吧
雁塔菜农<hotwc3@qq.com>  1:14:01
LC1AN多少银两?
雁塔菜农<hotwc3@qq.com>  1:14:22
晕,红杏里面已经有了!!!
㊣殇飞宇龙㊣(120472710)  1:14:27
9.5元/片批量。
酒鬼(9608662)  1:14:37
红杏如何写的啊?请教。
雁塔菜农<hotwc3@qq.com>  1:14:50
哈哈,真晕呀
雁塔菜农<hotwc3@qq.com>  1:15:21
==
㊣殇飞宇龙㊣(120472710)  1:15:43
大叔夜课忙不过来了。。。
酒鬼(9608662)  1:15:51
哦,等待赐教,哈哈。。俺今天可想破脑袋了。
雁塔菜农<hotwc3@qq.com>  1:16:40
晕!!!俺明明白白说所有的都控制到位
酒鬼(9608662)  1:17:42
请教菜农,比如这3句,怎么改啊?
SysTicks.CTRL.Bits.CLKSRC = 1;
SysTicks.CTRL.Bits.TICKINT = 1;
SysTicks.CTRL.Bits.TICKENABLE = 1;
雁塔菜农<hotwc3@qq.com>  1:17:46
typedef enum
{
    SysTick_CTRL_TICKENABLE = 0,//计数器运行于multi-shot manner.
    SysTick_CTRL_TICKINT    = 1,//向下计数到0将引起SysTick 异常而挂起.
    SysTick_CTRL_CLKSRC     = 2,//如果没有外部时钟时,可用内核时钟作SysTick, 该位被读为1 ,不能写.
    SysTick_CTRL_COUNTFLAG  = 16//计数由1到0时,COUNTFLAG 置位.
}NU_SysTick_CTRL_ENUM;

雁塔菜农<hotwc3@qq.com>  1:20:06
SysTicks.CTRL.Bits.CLKSRC = 1;
SysTicks.CTRL.Bits.TICKINT = 1;
SysTicks.CTRL.Bits.TICKENABLE = 1;

应该:
SysTicks.CTRL.Regs |= (1 << SysTick_CTRL_CLKSRC) | (1 << SysTick_CTRL_TICKINT) | (1 << SysTick_CTRL_TICKENABLE)
;
雁塔菜农<hotwc3@qq.com>  1:20:16
明白否?
雁塔菜农<hotwc3@qq.com>  1:20:38
4500行难道是吃素的?
雁塔菜农<hotwc3@qq.com>  1:20:43
晕!!!
酒鬼(9608662)  1:20:52
这样啊,也不错。
雁塔菜农<hotwc3@qq.com>  1:20:58
酒鬼可以迷糊了吧
酒鬼(9608662)  1:21:02
我想要更高级的方式呢
雁塔菜农<hotwc3@qq.com>  1:21:17
所有全部是这样
雁塔菜农<hotwc3@qq.com>  1:21:26
不可能了
酒鬼(9608662)  1:21:35
能不能做两个宏:
OPTMIZE_BIT_BEGIN(SysTicks.CTRL)
SysTicks.CTRL.Bits.CLKSRC = 1;
SysTicks.CTRL.Bits.TICKINT = 1;
SysTicks.CTRL.Bits.TICKENABLE = 1;
OPTMIZE_BIT_END(SysTicks.CTRL)
酒鬼(9608662)  1:21:52
在两个宏包裹的范围内,实现自动优化。
雁塔菜农<hotwc3@qq.com>  1:21:54
C语言的位域最高境界不过如此
酒鬼(9608662)  1:22:18
试验了一下,通过移除volatile的方式,大概能够做到。
酒鬼(9608662)  1:22:40
在OPTMIZIE_BIT_END之后,再将volatile恢复原状。
酒鬼(9608662)  1:22:54
想法还不是很完美,还有点问题。
雁塔菜农<hotwc3@qq.com>  1:22:57
俺考虑过,俺没时间,即将库都变为宏或函数
雁塔菜农<hotwc3@qq.com>  1:23:08

李冬发(632653918)  1:23:43
[img]file:///C:/Users/vivi/AppData/Local/Temp/~(H)[A[%7D_FC3OBSP~]S%60RV8.gif[/img]
雁塔菜农<hotwc3@qq.com>  1:23:54
去掉volatile是有问题的
酒鬼(9608662)  1:24:31
是有点问题,正是今天想破脑袋也搞不定的地方
雁塔菜农<hotwc3@qq.com>  1:24:35
例如连续分步操作位,编译器优化是不对的
雁塔菜农<hotwc3@qq.com>  1:25:03
硬件是有这个需求的
雁塔菜农<hotwc3@qq.com>  1:25:42
还有就是发生中断也将会有问题
雁塔菜农<hotwc3@qq.com>  1:25:55
俺也想过~~~
雁塔菜农<hotwc3@qq.com>  1:26:25
睡觉吧,明天继续想
酒鬼(9608662)  1:26:49
可不可以这样说, 只要允许用 .Regs 组合多个位的情况,应该都允许优化?
酒鬼(9608662)  1:27:02
哈哈 明天想,再见
雁塔菜农<hotwc3@qq.com>  1:28:38
这个~~~头就复杂了
雁塔菜农<hotwc3@qq.com>  1:29:00
俺没时间写红杏的用法~~~
雁塔菜农<hotwc3@qq.com>  1:29:19
害人呀,不过俺会用就行了~~~
李冬发(632653918)  1:32:33
[img]file:///E:/工具/腾迅qq/1270688699/Image/8WY]DGP4%7D0B)MIR%7DP[M)4JG.GIF[/img]
雁塔菜农<hotwc3@qq.com>  1:35:13
file:///C:/Users/vivi/AppData/Local/Temp/GEI_OKV1~H6%7BSFXQ0_AC6G2.gif
左佑(909655299)  1:38:10
麻烦下各位  问个蜂鸣器的问题
左佑(909655299)  1:38:14
file:///E:/工具/腾迅qq/1270688699/Image/8WO@O5C%255Z8T7ACWL]%25YZ~S.jpg
左佑(909655299)  1:38:38
我那图中的蜂鸣器是什么型号的呀?  有源还是无源呀?
雁塔菜农<hotwc3@qq.com>  1:39:48
无源的,长鸣的
左佑(909655299)  1:40:22
哦  那不可以直接用51的I/O口驱动吧?
雁塔菜农<hotwc3@qq.com>  1:41:46
unl2003A即MC1413,达林顿三极管驱动的
左佑(909655299)  1:41:53
哦  
雁塔菜农<hotwc3@qq.com>  1:42:36
不要用IO直接驱动,它是感性负载,要干扰MCU的
左佑(909655299)  1:42:57
哦  那我就用那ULN2003驱动了
左佑(909655299)  1:43:16
3Q了  file:///C:/Users/vivi/AppData/Local/Temp/WML%60ZUS$8NCVU(%257M%255VUJI.gif
李冬发(632653918)  1:43:57
就说不干扰,MCU也不好驱动这个蜂鸣器啊,蜂鸣器电流多在呢。不怕烧管脚?!
雁塔菜农<hotwc3@qq.com>  1:44:13
mc1413设计是驱动继电器的,9脚是用于续流的
左佑(909655299)  1:44:13
呵呵  恩
雁塔菜农<hotwc3@qq.com>  1:44:54
反电势足可以倒塌的MCU
左佑(909655299)  1:45:06

雁塔菜农<hotwc3@qq.com>  1:45:44
https://bbs.21ic.com/icview-212451-1-1.html
左佑(909655299)  1:45:58
好  我去看看
李冬发(632653918)  1:46:10
迷糊了
雁塔菜农<hotwc3@qq.com>  1:46:17
哈哈~~~
李冬发(632653918)  1:46:22
同志们好啊,你们继续!
雁塔菜农<hotwc3@qq.com>  1:46:46
老王何在?俺要迷糊了
李冬发(632653918)  1:47:38
你是找王半仙还是另一个老王?
雁塔菜农<hotwc3@qq.com>  1:48:16
俺能找那个老王?晕
雁塔菜农<hotwc3@qq.com>  1:48:27
俺只有一个老王
雁塔菜农<hotwc3@qq.com>  1:48:40
估计今日迷糊了
㊣殇飞宇龙㊣(120472710)  1:49:06
睡吧,大叔,明天再继续战斗!
李冬发(632653918)  1:49:46
问题是这里有个王哦
雁塔菜农<hotwc3@qq.com>  1:49:51
哈哈~~~你先撤,俺待会,否则老王说俺找借口
雁塔菜农<hotwc3@qq.com>  1:50:36
file:///E:/工具/腾迅qq/1270688699/Image/9FK883T43)%25H2Y(W8%7BCXT5U.jpg
李冬发(632653918)  1:51:56
王半仙!
李冬发(632653918)  1:52:22
撤!
沙发
hotpower|  楼主 | 2010-12-20 06:41 | 只看该作者
哈哈,找不到人了

使用特权

评论回复
板凳
秋天落叶| | 2010-12-20 20:53 | 只看该作者
有点看不太明白

使用特权

评论回复
地板
hotpower|  楼主 | 2010-12-21 05:30 | 只看该作者
哈哈,让酒鬼研究三角密码…估计又睡不着觉了,今晚再给他个动脑筋的好玩的

使用特权

评论回复
5
hotpower|  楼主 | 2011-5-14 00:47 | 只看该作者
哈哈~~~酒鬼也学单片机~~~

使用特权

评论回复
6
plc_avr| | 2011-5-14 07:31 | 只看该作者
:)

使用特权

评论回复
7
Doe_cn| | 2012-9-13 02:43 | 只看该作者
☆☆群课领悟手记系列☆☆

看来我之前的理解有点问题,这次又算是清晰一点。呵呵。。。
红杏我最看重的是方便**,跟位操作,至于代码优化,有则更好,没有,也不差。。。

2012/09/13

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝