本帖最后由 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
撤! |