-
Recent Posts
Recent Comments
- cepark on *** WARNING L15: MULTIPLE CALL TO SEGMENT
- 嚣张 on 由于最近连着做了几个网站,慢慢习惯了用记事本直接用html标记来作网页 …
- liu on zlg7290的烦恼
- 徒弟 on 倍压整流电路
- Kitty on 蓝牙同步找不到activesync服务
Archives
- August 2009
- October 2008
- September 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- September 2007
- August 2007
- July 2007
- May 2007
- March 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- June 2006
- May 2006
- April 2006
- March 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- March 2005
- August 2004
- July 2004
- June 2004
- May 2004
Categories
Meta
Monthly Archives: January 2008
单片机仿真的怪问题
今天调试一个程序,本来这个程序中的子程序是调好的,可是今天用仿真器仿真的时候,出来的数据就是不对,而且有时候每次还不一样? 怪了,检查了半天程序,程序应该是没有问题的,在看看硬件电路吧,去耦也加了,上拉也加了,还是不行… 这时,忽然看到了仿真器上连着的长长的到仿真头的电缆上,因为我这段程序是读一个外部的存储器,写入基本没什么问题,就是读取的时候有毛病,想是不是这根线有问题啊?用万用表量了N次,没有问题?干脆!用粗而短的线,将外部存储器输出口到仿真头直接连了起来….居然好了!….为了进一步验证,烧了芯片,将芯片插上,不用仿真了,也没问题….真是无话可说了,原来原因在这里了,看来是因为仿真头的线太长了,要不就是太细,所以导致数据的不正确!!看来新的那种用JTAG非侵入式在线系统调试仿真还是很有道理的!至少这种问题是不存在的! …还是老话,如果不是成本的问题,传统的51(89C51一类的)不论从芯片到仿真系统真的都该下岗了,不过还是老话,既然存在就有存在的道理~~~嘿嘿~~~
Posted in 一些废话, 单片机
Leave a comment
如何使用89s(c)52的高128ram 续
上次说了那个使用52的时候,如果想使用高128ram,需要使用idata 今天在写一个芯片的驱动的时候,发现如果在延时的子程序中,使用idata的时候,会造成延时时间的不准确,具体原因我没有去找 可能是间接寻址和直接寻址的时间不一样.有时间在找找吧!
Posted in 单片机
Leave a comment
红外解码
本来打算写个能学习的解码程序,不过发现每次采样的值都有点差别,可能是程序那个地方还需要调整…. 刚刚算了算,才发现,我用的93C46(图便宜呀!图便宜!)根本放不下采来的数据…我晕 算了 还是写个专门的吧…首先要知道我的遥控器用的那个型号的编码芯片,找把螺丝刀…开翘…掩膜芯片(一大块黑乎乎的塑胶封装的那种)..靠 ! 没办法,只好用数据分析了,网上搜了一下,还真有位朋友做了个红外数据分析的东东,懒的搭电路了,找个最小系统(躺在垃圾里N久了),还不错,查了一下,数据有42位,继续搜,哦 原来是7461的编码芯片,顺便找到了它的数据格式. 开写…. 23点,现在差不多了,有时间在试试它的抗干扰能力如何…睡觉!
Posted in 单片机
2 Comments
访问 IIS 元数据库失败
今天准备做个网站,由于N久没有写网站的程序了,所以系统出了点小问题~~ 程序编制使用VS.NET2005 我不太习惯使用VS自带的服务端程序,用浏览器打开做好的网页出现了 “访问 IIS 元数据库失败”这个提示. 搜…. 以下转来的! /**********************************************/ 装了VS2005再装IIS,结果出了些小问题 访问IIS元数据库失败 思考可能是次序出了问题,解决 1、打开CMD,进入 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 2、输入 aspnet_regiis.exe -i 稍等片刻,注册成功就解决问题了。 接着还会出现“未能创建 Mutex”的问题 解决方法: 1、先关闭你的VS2005。 2、打开 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 找到你刚才调试的程序的名字的目录删除它。 3、关闭IIS服务器,重开一次。 4、用IE浏览一下你的程序,问题解决
Posted in 编程
Leave a comment
windows安装服务 installer information “无法打开项” 问题
今天清理电脑时,顺便把原来安装的金山杀毒给卸掉了,原因是免费试用期到了~~找来个免费试用30天的NOD32准备装上,等这个试用期到了再换,但是装到注册表项时,提示 “无法打开项 注册表访问权限不够….”….. 真是晕S,刚刚搞定了管理的拒绝访问问题,这又出来个这个问题!在上网搜搜吧!哈哈 没装杀毒软件就上网,算是裸奔了~ 找了一圈 有的说 用msiexec.exe重新启动一下regserver就可以了,试验了一下,p用没有!又爬到ms看了一圈帮助,也是p用没有!病毒引起的,这个更是放p,windows安装服务有问题,p!别的调用windows安装服务的安装程序咋没问题!!!! 哎,得 还是自己解决吧!根据提示,注册表访问权限不够?而且是开机自启动那里!HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 那就看看这里吧,打开regeidt,找到run这里,右键-权限~~~吼吼… 这里只有INTERACTIVE这个用户有个特别权限,看看特别权限是个啥,哦 是个应用于只有该项的完全控制权限~~~,看到这里好像明白点了,如果某人用windows服务程序做的安装包,如果安装包的安装权限做的有问题的话,我指的是写入或者控制权限,那可能就会出现这个问题~~(以上安装包的分析,本人纯属瞎掰,欢迎知道的朋友拍砖~~~~),问题找到了,那解决起来就方便多了. 添加everyone用户,然后把完全控制权限给这个用户,关闭注册表,在运行刚才的安装程序,…好了搞定~~ 安装好后,因为我不知道这样做会有什么安全问题,因为注册表的这个地方是个很敏感的地方,所以安装完成后,在把everyone这个用户给删除!以后在碰到类似问题,如法炮制~~
Posted in 一些废话, 生活
Leave a comment
我的电脑(右键)-管理 “拒绝访问”
今天清理电脑 才发现 右键 我的电脑 管理 提示我 拒绝访问!!!! 上网找了一圈,都说是病毒什么闹的,我的第一感觉,应该不是,我自信我的机器病毒除了自己研究用的文件,感染的可能性很小,因为我很少运行外来不知名的程序,而且机器里东西不是很多,所以我认为那些说什么病毒引起的是找不到根据的瞎说!!! 不过问题总的解决啊!在搜搜了…. 终于搜到个正宗的 嘿嘿 以下是转来的~~ 以下是 我的电脑->管理 在注册表中的设置 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage]@=hex(2):40,00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,\ 00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,79,00,63,00,6f,00,6d,00,\ 70,00,75,00,74,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,34,00,30,00,30,00,00,\ 00“SuppressionPolicy”=dword:4000003c [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command]@=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,00,73,\ 00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,63,00,2e,00,65,00,78,00,\ 65,00,20,00,2f,00,73,00,20,00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,\ 00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6f,00,\ 6d,00,70,00,6d,00,67,00,6d,00,74,00,2e,00,6d,00,73,00,63,00,00,00 其中command默认的键值为: %windir%\system32\mmc.exe /s %windir%\system32\compmgmt.msc 如果系统环境变量windir指向的是实际的windows目录则上述表达式没问题,如果是指向其它的环境变量,如:%SystemRoot%,则表达式解释后变为: %SystemRoot%\system32\mmc.exe /s %SystemRoot%\system32\compmgmt.msc 此类问题是由于第三方软件安装后修改系统环境变量导致(如:Protel),由于windows系统无法自行递归解释环境变量,故上述表达式无效,所以会导致拒绝访问。 解决方案:将系统环境变量中的windir设置为实际的windows根目录位置,如X:\Windows(X表示系统所在的分区)。当然,大家也可以不使用环境变量,不过这样就会导致不通用,而且在其它地方仍会导致同类问题! 列举一些同类问题,参考可用类似的解决方案尝试: … Continue reading
Posted in 一些废话, 生活
Leave a comment
*** WARNING L15: MULTIPLE CALL TO SEGMENT
说说几个小问题吧,一般我们在用KEIL的时候,只要编译器报 - 0 Error(s) 一般我们都不去管多少个 Warning(s).了,一般这样程序基本都能运行,但是其实仔细想想,这里还是有问题的,否则编译器没事吃饱了撑得,报什么警告啊~~~ 今天来说说*** WARNING L15: MULTIPLE CALL TO SEGMENT这个问题! 其实这个问题应该是引起注意的,有可能引起程序冲突,但是一般时候程序运行不会有问题,但是如果出来问题,那将会是很讨厌的问题. 分析一下 产生这一警告的一个根源是:例如在主循环里调用了一个函数,而在中断服务中,你又一次调用了同样的函数。这样当主循环运行到该函数中时,一旦产生中断,则在中断里又再次调用该函数!而使得该子函数发生了重入,这时,经管概率很低,但是很可能出错!这样,编译器就给出了警告!告诉你*** WARNING L15: MULTIPLE CALL TO SEGMENT ,表达的意思是发生了重入!字面意思自己理解去吧~~~ 想要避免这种情况的方法 一.用reentrant使函数重入 关于reentrant的说明: 1,重入函数不能传递bit类型的参数和变量; 2,重入函数建立的是模拟堆栈区,所以不使用一般函数位于存储模式默认空间的可覆盖式堆栈,而是在同一空间从顶端另行分配一个非覆盖式的重入堆栈。 small 默认空间是 data; compact 默认空间是 pdata; largr 默认空间是 xdata; 3,由于要保存参数和局部变量,所以会消耗很大的栈空间;尽量少用这种模式; … Continue reading
Posted in 单片机, 工作, 编程
10 Comments
keilc51v8.11a
到网上闲逛,看到keil又TM升级了! 下载 安装 运行 还不错,没看出改进了啥地方 看看升级说明 C51 Version 8.11a Release [Device Support] Added: support for Ramtron VRS51L3072 and VRS51L3174. Added: support for Nordic Semiconductor nRF24LU1. [Device Simulation] Added: device support and simulation for SiLABS C8051F336, C8051F337, C8051F338, and C8051F339. Corrected: … Continue reading
Posted in 单片机, 工作
3 Comments
51的计算速度不够咋办?
有个复杂的运算,但是等51算完了,得出的数据已经过时了!咋办? 用比较傻的办法吧 matlab仿真,然后把仿真的数据放到数组中,这样快了很多!缺点是范围小,占用本来就很小的flash!
Posted in 单片机
Leave a comment
如何使用89s(c)52的高128ram
中午吃完饭,研究了一下昨天没搞明白的问题 首先说一下 51系列的一些单片机仅有128字节的ram 如89c51 地址为00H-7fH 52系列单片机,增加了高128字节的片内ram 如89c52 地址为80H-FFH,但是该范围只能采用间接寻址方式访问 整个片内ram地址范围00H-FFH称为idata区。与idata空间高128字节重叠部分称为特殊功能寄存器区。 而且用keil编译的时候(其他的没用过,不知道)指定了IDATA 类型变量时,系统会帮你分配内存,将data区中未用完的空间继续使用,至到用完在开始使用高字节的128ram 所以如果使用52系列的时候如果低128ram不够用的时候,可以将一些变量定义为为idata,以让keil使用高128ram,在编译就ok了! 以上是本人用的心得,正确与否,欢迎各位拍砖!
Posted in 单片机
2 Comments