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

2010-12-20 01:55 1816 13 14 分类: MCU/ 嵌入式

酒鬼(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

酒鬼(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

雁塔菜农<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

雁塔菜农<hotwc3@qq.com>  1:35:13

左佑(909655299)  1:38:10
麻烦下各位  问个蜂鸣器的问题
左佑(909655299)  1:38:14

左佑(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了  
李冬发(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
http://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

李冬发(632653918)  1:51:56
王半仙!
李冬发(632653918)  1:52:22
撤!

文章评论1条评论)

登录后参与讨论

用户1584993 2010-12-20 12:57

都是夜猫子啊
相关推荐阅读
雁塔菜农 2012-04-05 17:51
2012年度新唐Cortex-M0助学开发套件有约束条件赠送申报贴
2012年度新唐Cortex-M0助学套件从4月起每月有约束条件发放16套。 申报人必须是21ic或 EDNC 会员 并具备1月的会龄。 申报时必须注明“遵守约束条件,缴纳250元订金,上...
雁塔菜农 2012-04-05 17:04
2012年度Cortex-M0助学园地推广框图
...
雁塔菜农 2012-04-01 17:59
2012年度Cortex-M0助学园地奖励计划细则
抢楼请点击:菜地公告:即日起创建《菜农Cortex-M0助学园地》(盖楼入口) 每月10号和25号的下午2:50进行2次抢楼,规则同去年12月的疯狂抢楼活动。 奖品由21IC、北航、广州迪圣...
雁塔菜农 2012-02-03 08:19
菜农谋略:搞定牛人宋俊德,对女牛人孙昌旭说:“记住,俺是雁塔菜农~~~ ”
http://www.baidu.com/s?wd=%B2%CB%C5%A9%D0%A6%CC%B8%A1%B6%D0%C2%C0%CB%C3%FB%C8%CB%D0%A7%D3%A6%A1%B7...
我要评论
1
13
关闭 站长推荐上一条 /2 下一条