<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Apache 的日志</title><link>http://apache.cndev.org/</link><description /><managingEditor>apache</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>apache</dc:creator><title>发布 .NET 2.0 WebService 只能查看函数 不能调用的问题.</title><link>http://apache.cndev.org/archive/2007/08/10/53654.aspx</link><pubDate>2007-08-10 11:05:00Z</pubDate><guid>http://apache.cndev.org/archive/2007/08/10/53654.aspx</guid><wfw:comment>http://apache.cndev.org/comments/53654.aspx</wfw:comment><comments>http://apache.cndev.org/archive/2007/08/10/53654.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://apache.cndev.org/comments/commentRss/53654.aspx</wfw:commentRss><trackback:ping>http://apache.cndev.org/services/trackbacks/53654.aspx</trackback:ping><description>在 WebConfig 文件中 &lt;/system.web&gt; 节 
加上如下内容就好了.
   &lt;webServices &gt;
      &lt;protocols &gt;
        &lt;add name="HttpSoap"/&gt;
        &lt;add name="HttpPost"/&gt;
        &lt;add name="HttpGet"/&gt;
        &lt;add name="Documentation"/&gt;
      &lt;/protocols&gt;
    &lt;/webServices&gt;
	&lt;img src ="http://apache.cndev.org/aggbug/53654.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>apache</dc:creator><title>worktime and freetime</title><link>http://apache.cndev.org/archive/2007/06/28/52517.aspx</link><pubDate>2007-06-28 00:01:00Z</pubDate><guid>http://apache.cndev.org/archive/2007/06/28/52517.aspx</guid><wfw:comment>http://apache.cndev.org/comments/52517.aspx</wfw:comment><comments>http://apache.cndev.org/archive/2007/06/28/52517.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://apache.cndev.org/comments/commentRss/52517.aspx</wfw:commentRss><trackback:ping>http://apache.cndev.org/services/trackbacks/52517.aspx</trackback:ping><description>&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 工作三个月了，工作上一直在做C/S 的东西，一直没太多的时间捣鼓一些小玩意，不过最近又重新开始接触B/S ，这让我想起了以前做的一个小东东，应该在Blog中提一下，算是做个广告吧。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是我学习Flex 的过程中的一个作品，做的很粗糙，不过是一边做一边学，也不能在质量上要求很高，前台是 Flex 2 用 Flex Builder 2 构建 ，后台为 .NET Web Service 用 Visual Studio 2005&amp;nbsp; 构建，语言是VB.NET 。&lt;/P&gt;
&lt;P&gt;还是用老的&lt;A href="http://www.easylf.net"&gt;www.easylf.net&lt;/A&gt; 的空间和域名，似乎搞了几次什么也没成功，现在完全变成实验田了，这样也不错。&lt;/P&gt;
&lt;P&gt;现在仅仅做了个记事本和文件夹的功能，功能简单，bug 多多，以后有时间慢慢改进吧。&lt;/P&gt;
&lt;P&gt;前一阵子FreeTime 一直在搞Flex ，现在基本没有时间了，最近工作上的事情比较多，我又是新手，所以做什么事情都要打出点时间的富裕，用来修改bug。现在只能用时间来弥补质量上的不足。最近加班比较多，希望忙过这一段，可以休息一下。&lt;/P&gt;&lt;img src ="http://apache.cndev.org/aggbug/52517.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>apache</dc:creator><title>C++Builder 全局变量</title><link>http://apache.cndev.org/archive/2007/05/17/51725.aspx</link><pubDate>2007-05-17 13:59:00Z</pubDate><guid>http://apache.cndev.org/archive/2007/05/17/51725.aspx</guid><wfw:comment>http://apache.cndev.org/comments/51725.aspx</wfw:comment><comments>http://apache.cndev.org/archive/2007/05/17/51725.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://apache.cndev.org/comments/commentRss/51725.aspx</wfw:commentRss><trackback:ping>http://apache.cndev.org/services/trackbacks/51725.aspx</trackback:ping><description>&lt;P&gt;今天遇到了一个C++Builder 全局变量的问题，经过查找资料，终于解决了&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A.CPP&lt;/P&gt;
&lt;P&gt;#include &amp;lt;B.H&amp;gt;&lt;/P&gt;
&lt;P&gt;ShowMessage(MainVersion);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;B.H&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;AnsiString MainVersion;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;C.CPP&lt;/P&gt;
&lt;P&gt;#include &amp;lt;B.H&amp;gt;&lt;/P&gt;
&lt;P&gt;MainVersion=&amp;#8221;T-bag&amp;#8221;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;这样三个文件，C.CPP 修改了 MainVersion 的值后,A.cpp显示为空，奇怪哈。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Google 得到：全局变量需要加：extern 关键字&lt;/P&gt;
&lt;P&gt;于是修改为：extern AnsiString MainVersion &lt;/P&gt;
&lt;P&gt;问题依然如故&lt;/P&gt;
&lt;P&gt;再Google ,原来VCL 对 extern 关键字做了扩展，改为&lt;/P&gt;
&lt;P&gt;extern PACKAGE&amp;nbsp;&amp;nbsp; AnsiString MainVersion;&lt;/P&gt;
&lt;P&gt;编译失败，&lt;/P&gt;
&lt;P&gt;在B.CPP 中加入 &lt;/P&gt;
&lt;P&gt;AnsiString MainVersion;&lt;/P&gt;
&lt;P&gt;问题全部解决。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;奇怪哈，以前声明全局变量只放在.H 文件中，用extern PACKAGE&amp;nbsp;&amp;nbsp; 关键字还需要在.CPP中写一份，不知道其中的原因，如果哪位看官明白，请告诉小弟。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://apache.cndev.org/aggbug/51725.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>apache</dc:creator><title>AT89S51 和 AT89S52的区别</title><link>http://apache.cndev.org/archive/2007/05/17/51723.aspx</link><pubDate>2007-05-17 13:35:00Z</pubDate><guid>http://apache.cndev.org/archive/2007/05/17/51723.aspx</guid><wfw:comment>http://apache.cndev.org/comments/51723.aspx</wfw:comment><comments>http://apache.cndev.org/archive/2007/05/17/51723.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://apache.cndev.org/comments/commentRss/51723.aspx</wfw:commentRss><trackback:ping>http://apache.cndev.org/services/trackbacks/51723.aspx</trackback:ping><description>&lt;P&gt;&amp;nbsp;&amp;nbsp; 在印象中，S51 和 S52的区别不太大，正是由于平常的不仔细，在后面的开发中遇到了问题，记忆深刻，特意把一些经验记录下来，希望能给需要的人一些帮助。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 前些日子，朋友有几台基于89S51的设备需要维修，实际上就是MCU坏掉了，由于厂家已经不给维护，只能重写全部程序，在对设备的硬件仔细研究之后，我开始动手了。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于当时手头没有PLCC封装的89S51 ，就用 89S52 替代，毕竟硬件外围电路上，89S51 和S52 是没有区别的（也可能有，但我还没发现，呵呵）。没多长时间，程序开发调试完成。于是买来几块89S51，准备编译一下，问题出现了，首先出现错误提示：&lt;/P&gt;
&lt;P&gt;ADDRESS SPACE OVERFLOW ＸＸＸＸ&lt;/P&gt;
&lt;P&gt;经Ｇｏｏｇｌｅ得到，原来89S51 的 内存只有 128字节 而89S52内存有 256 字节，明显是内存不够用了，经过优化减少全局变量，Data=110.4 bytes 已经少于 128字节，编译成功，烧写。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 芯片装到设备上，出现了跑飞的情况，原以为是程序逻辑的问题，经过仔细查找没发现错误的地方，但程序仍然跑飞，很奇怪。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再Google ，发现：虽然89S51 有 128 字节的内存，但不能全部给全局变量使用，需要预留20~30字节给堆栈使用，否则程序当然会跑飞。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 反复查看代码，发现程序中有一些常量，但仍然放在内存中，比如：&lt;/P&gt;
&lt;P&gt;char a[]={'a','b','c','d'};&lt;/P&gt;
&lt;P&gt;偶尔发现别人的代码中有这种形式的定义：&lt;/P&gt;
&lt;P&gt;char code a[]={'a',b','c','d'};&lt;/P&gt;
&lt;P&gt;原来，常量可以放在程序Rom里，于是将一些程序中不需要变化的变量（其实就是常量哈）全部修改为char code&amp;nbsp; a;的形式，烧写，调试，以前跑飞的情况终于解决了。&lt;/P&gt;
&lt;P&gt;另外，对于只使用正值的char 可以修改为 unsigned char，也可以节省一些内存。 &lt;/P&gt;&lt;img src ="http://apache.cndev.org/aggbug/51723.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>apache</dc:creator><title>新做的一个电子表</title><link>http://apache.cndev.org/archive/2007/05/15/51701.aspx</link><pubDate>2007-05-15 23:30:00Z</pubDate><guid>http://apache.cndev.org/archive/2007/05/15/51701.aspx</guid><wfw:comment>http://apache.cndev.org/comments/51701.aspx</wfw:comment><comments>http://apache.cndev.org/archive/2007/05/15/51701.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://apache.cndev.org/comments/commentRss/51701.aspx</wfw:commentRss><trackback:ping>http://apache.cndev.org/services/trackbacks/51701.aspx</trackback:ping><description>&lt;IMG src="http://www.cndev.org/.imgdb/%5Csn10108/GUID-0F22E535-2F44-4797-9195-38723D1C2F87.jpg"&gt; &lt;IMG src="http://www.cndev.org/.imgdb/%5Csn10108/GUID-E38571FA-FE51-4499-B186-176F955188F1.jpg"&gt;&lt;img src ="http://apache.cndev.org/aggbug/51701.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>apache</dc:creator><title>【转载】贴个1602 液晶的驱动程序</title><link>http://apache.cndev.org/archive/2007/04/28/51540.aspx</link><pubDate>2007-04-28 16:02:00Z</pubDate><guid>http://apache.cndev.org/archive/2007/04/28/51540.aspx</guid><wfw:comment>http://apache.cndev.org/comments/51540.aspx</wfw:comment><comments>http://apache.cndev.org/archive/2007/04/28/51540.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://apache.cndev.org/comments/commentRss/51540.aspx</wfw:commentRss><trackback:ping>http://apache.cndev.org/services/trackbacks/51540.aspx</trackback:ping><description>/*=======================================
                         1602lcd模块驱动程序
==========================================

说明:1.晶体:11.0592MHz
     2.1602驱动:ks0066
    
******************************************/
＃i nclude &lt;reg51.h&gt;
＃i nclude &lt;string.h&gt;
#define lcm_rs P2_7            //寄存器选择
#define lcm_rw P2_6        //读/写控制
#define lcm_e P2_5            //读/写使能
#define lcm_blk P2_4        //背光led   1.off 0.on
#define lcm_data P0

//函数声明
void delay5ms(void);
void delay400ms(void);
void lcm_write_command(unsigned char wc_lcm,busy_c);

/***********************************
//函数名称:    void lcm_ini(void)
//传递参数:    无
//返 回 值:    无
//函数功能:    LCM初始化
//函数说明:
***********************************/
void lcm_ini(void)
{
    lcm_data = 0;
    lcm_write_command(0x38,0);        //16*2显示,5*7点阵,8位数据接口,不检测忙
    delay5ms();
    lcm_write_command(0x38,0);
    delay5ms();
    lcm_write_command(0x38,0);        //三次显示模式, 不检测忙
    delay5ms();
    lcm_write_command(0x38,1);        //16*2显示,5*7点阵,8位数据接口,需要检测忙
    lcm_write_command(0x80,1);        //关闭显示
    lcm_write_command(0x01,1);        //clear显示    
    lcm_write_command(0x06,1);        //指针和光标+1,不滚屏
    lcm_write_command(0x0c,1);        //开显示,不显示光标
}

/***********************************
//函数名称:    unsigned char lcm_read_status(void)
//传递参数:    无
//返 回 值:    unsigned char
//函数功能:    读lcm状态,等待lcm空闲
//函数说明:    DB7=1,忙
***********************************/
unsigned char lcm_read_status(void)
{
    lcm_data=0xff;
    lcm_rs=0;
    lcm_rw=1;
    lcm_e=0;
    lcm_e=0;
    lcm_e=1;
    while(lcm_data &amp; 0x80);
    return lcm_data;
}

/***********************************
//函数名称:    void lcm_write_data(unsigned char wd_lcm)
//传递参数:    unsigned char  wd_lcm
//返 回 值:    无
//函数功能:    lcm写数据
//函数说明:    
***********************************/
void lcm_write_data(unsigned char wd_lcm)
{
    lcm_read_status();            //判断lcm忙标志
    lcm_data = wd_lcm;
    lcm_rs = 1;
    lcm_rw = 0;
    lcm_e = 0;
    lcm_e = 0;
    lcm_e = 1;
}

/***********************************
//函数名称:    void lcm_write_command(unsigned char wc_lcm, busy_c)
//传递参数:    unsigned char wc_lcm, busy_c
//返 回 值:    无
//函数功能:    lcm写命令
//函数说明:    busy_c=0是,不用检测忙信号
***********************************/
void lcm_write_command(unsigned char wc_lcm, busy_c)
{
    if (busy_c)
        lcm_read_status();
    lcm_data = wc_lcm;
    lcm_rs=0;
    lcm_rw = 0;
    lcm_e = 0;
    lcm_e = 0;
    lcm_e = 1;
}

/***********************************
//函数名称:    void disp_one_char(unsigned char x, unsigned char y,unsigned char disp_data)
//传递参数:    unsigned char x, unsigned char y,unsigned char disp_data
//返 回 值:    无
//函数功能:    指定位置显示一个字符
//函数说明:    
***********************************/
void disp_one_char(unsigned char x,unsigned char y,unsigned disp_data)
{
    y = y&amp;0x01;
    x = x&amp;0x0f;                  //限制2行,没行15个字
    if (y)
        x =x + 0x40;          //算RAM地址
    x = x + 0x80;
    lcm_write_command(x,0);
    lcm_write_data(disp_data);
}

/***********************************
//函数名称:    void disp_one_char(unsigned char x, unsigned char y,unsigned char *disp_data)
//传递参数:    unsigned char x, unsigned char y,unsigned char *disp_data
//返 回 值:    无
//函数功能:    指定位置显示一串字符
//函数说明:    
***********************************/    
void disp_list_char(unsigned char x,unsigned char y,unsigned char *disp_data)    
{
    unsigned char char_length,j;
    char_length = strlen(disp_data);
    y = y&amp;0x1;
    x = x&amp;0x0f;
    for (j=0;j&lt;char_length;j++)
    {
        disp_one_char( x,y,disp_data[j]);        //显示一个字符
        x++;
    }
}

/***********************************
//函数名称:    void delay5ms(void)
//传递参数:    无
//返 回 值:    无
//函数功能:    延时5MS
//函数说明:
***********************************/
void delay5ms(void)
{
    unsigned int TempCyc = 5552;
    while(TempCyc--);
}
/***********************************
//函数名称:    void delay400ms(void)
//传递参数:    无
//返 回 值:    无
//函数功能:    L延时400MS
//函数说明:    LCM开机延时
***********************************/
void delay400ms(void)
{
    unsigned char TempCycA = 5;
    unsigned int TempCycB;
    while(TempCycA--)
    {
        TempCycB=7269;
        while(TempCycB--);
    };
}

/*****d******************************
//函数名称:    void main(void)
//传递参数:    无
//返 回 值:    无
//函数功能:    主函数
//函数说明:    
************************************/
void main(void)
{
    delay400ms();
    lcm_ini();
                disp_list_char(1,0,"Welcome");
                disp_list_char(1,0,"www.dzkjcn.com")
                while(1);
}

以上的程序只是简单的显示两行字符,没有滚屏和背光&lt;img src ="http://apache.cndev.org/aggbug/51540.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>