打印

唉,这么简单的问题搞这么复杂来忽悠菜鸟……

[复制链接]
楼主: 刘前辈
手机看帖
扫描二维码
随时随地手机跟帖
21
t.jm| | 2011-8-26 17:01 | 只看该作者 回帖奖励 |倒序浏览
LZ应该这样测试:
if(count > 0x100)
    {
        count = 0xff;
    }
这样出错的几率会更大一点。

使用特权

评论回复
22
刘前辈|  楼主 | 2011-8-26 17:36 | 只看该作者
本帖最后由 刘前辈 于 2011-8-26 18:51 编辑
#14楼
出栈时,由于恢复了原PSW,  那么,中断过程中,CY的变化(置1),  早被丢弃,俺菜鸟实在太笨了,这辈子想破脑袋,都想不出,  在主程序中,到什么地方去找中断过程中的CY进位标志,请论坛的大虾们教教俺,只是别告诉俺,搞个镜像标志暂存之类的,这个和CY进位标志的级别实在相差太远了,并且,当又响应更高级的中断时,这个镜像标志又被刷新了,这个理由也太老土了,搞个新鲜一点的理由,谢谢啦~~~


前辈感动得流泪了。终于有人看懂刘前辈的大忽悠:14楼说得非常对!刚才俺看了源代码,确实理论上讲不通;——虽然实验结果是对的。
    没事,先有实验结果正确,就已经令人兴奋了。关键是刘前辈第一个想到了,理论证明要不了几天。用不了三年……

         如果等到理论证明X光为什么能透射人体,这个特性能应用在医学、工程材料检测……,那伦琴就等着当千年老二吧。遗憾,伦琴是德国人。

         刚看完《中国地》,一个日本反战的地质学者,在中国抗日战争年代在中国山区农村勘探了N年,中国的农民在艰苦的战争条件下善待保护养活他N年,中国地质老师指导他N年,最后为了争取世界第一最先发现古化石的名利,竟然可以甩掉中国老师,和中国农民对他的恩情,甚至可以动手杀人。这就是日本人对第一的态度。
     再说说韩国人,屈原已经成了韩国人?中国人再不争第一,连汉字也是韩国人发明的啦。
    所以,看着刘前辈第一个实验得出的结果,“他那理论上说不通呀……纯粹大忽悠……”

    说句实在话,谁如果没第一个想到、完成这样的实验,赶紧帮刘前辈理论证实一下,——无论对错,证伪也是高手,——也不失高手风范;至少也是千年老二。等前辈自己证明出来以后,诸位指责他人的高手会不会很尴尬……三年了,还玩关中断呢。“LZ概念清晰……”高手嚼别人的馍有味?

    要不,谁来一个和刘前辈不一样的、不影响中断的新鲜实验试试?让刘前辈无地自容,……来不了就别指责他人的成绩,都是男人,别太小气,做那种给人下绊儿的事,别让女人看不起……


、、

使用特权

评论回复
23
刘前辈|  楼主 | 2011-8-26 17:40 | 只看该作者
本帖最后由 刘前辈 于 2011-8-26 18:44 编辑

哈哈,看看刘前辈的实验结果:
smartpower的 源程序运行结果: error =0x2A;



修改这条 if ( count>250 || CY )   之后,error =0 ;  




谁来证实一下这个实验是错的,他一定比所长水平高。


//

使用特权

评论回复
24
Cortex-M0| | 2011-8-26 19:55 | 只看该作者
刘前辈确实是绝顶聪明的超宇宙级高手,俺菜鸟只有在后面跟班学习的份,试着改写了一段刘前辈最拿手的标准51程序,反汇编结果如下,请刘前辈指教。





附:  改写了C51源程序,不会写,肯定有错,请指教~~~

#include <reg51.h>
#define  Tsmp_T1  0x100-100      // 100us  T1 8位自动重装入定时常数(12MHz)
unsigned int  count;
unsigned long sum;
unsigned long error;
unsigned char flag;
void  __delay_cycles(unsigned char n)
{   unsigned char i;
while(n --)
   { for(i = 10;i > 0;i --);
   }
}
void interrupt_time1(void) interrupt 3 using 1   //T1 定时中断
{   count++;        //count = 251~260
    if(count > 260)
    { count = 251;
    }
    flag = 1;
}

void tmr1_ini() ////定时中断初始化
{   TMOD   = 0x20;               // 设定T1的工作模式为2,8位自动重载向上计数定时器
    TL1    = Tsmp_T1;            // 装入T1定时器的初值, 延时100us
    TH1    = Tsmp_T1;            // 8位自动重装入, 使用12MHz
    ET1    = 1;                  // 定时器1允许中断
    TR1    = 1;                  // 启动定时器1
}

void main(void)
{   count = 251;
    sum = 0;
    error = 0;
   
    tmr1_ini();
    EA     = 1;                  // 开中断
   
    while(sum < 100000)
    {
        if(flag > 0)
        { sum++;
          flag = 0;
        }
        
       if(count > 250||CY)       //count = 251~260
        { __delay_cycles(2);     //按理一定执行这句话
        }
        else
        { error++;              //但实际上有一定的机率会执行这句话
        }
    }

   while(1)                    //下断点,看error的数值
    {   __delay_cycles(2);
        __delay_cycles(2);
        __delay_cycles(2);
    }
}

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
highgear + 1
25
Cortex-M0| | 2011-8-26 20:01 | 只看该作者
唉,真是这么简单的问题搞这么复杂来忽悠俺菜鸟……

使用特权

评论回复
26
aihe| | 2011-8-26 20:27 | 只看该作者
l楼主真是匠人的好帮手,看最近这边冷清了,立马出山,拿些陈芝麻烂谷子的事出来抖抖
等着看哈哈

使用特权

评论回复
27
icecut| | 2011-8-26 20:27 | 只看该作者
如果编译器连int都搞不定。还是回家找骂吃饭吧

使用特权

评论回复
28
huanben| | 2011-8-26 20:46 | 只看该作者
27# icecut
我要好好研究你前一句留言,看不懂:shutup:

使用特权

评论回复
29
高工老头| | 2011-8-26 20:47 | 只看该作者
哎,俺们老年人最好不要折腾了:'(

使用特权

评论回复
30
mohanwei| | 2011-8-26 20:55 | 只看该作者
多看看基本的C语言编程书籍,共享的变量在定义时记得加volatile,其它的技巧能不用就少用……

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
icecut + 1
31
afei9527| | 2011-8-26 22:04 | 只看该作者
呵呵,确实没弄懂谁忽悠谁!

使用特权

评论回复
32
linqing171| | 2011-8-26 22:17 | 只看该作者
哈哈,也纳闷呢,psw进中断就保存了怎么会变。
看了24楼,恍然大悟了。
原来是自己和250比较的时候的CY。。。。

  
  
   
返回列表 12

使用特权

评论回复
33
流行音乐| | 2011-8-26 23:43 | 只看该作者
本帖最后由 流行音乐 于 2011-8-27 00:05 编辑

所以我向来不用老 hot 的红杏出墙,刘前辈就是在用红杏出墙时出错了。
如果不得不用到汇编,我会调用一个完整的汇编函数。

使用特权

评论回复
34
流行音乐| | 2011-8-26 23:47 | 只看该作者
大家为什么不把操作系统中的信号量的底层方法用到裸奔系统中呢(可以适当修改)?难道是本论坛中还没有人把信号量的底层实现方法搞明白?

使用特权

评论回复
35
icecut| | 2011-8-27 01:25 | 只看该作者
30楼挺好。虽然 51没有cache。但是reg可以缓存变量。。。。
至于他的结果,俺还是不相信

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
highgear + 1
36
highgear| | 2011-8-27 02:24 | 只看该作者
前辈感动得流泪了。终于有人看懂刘前辈的大忽悠:14楼说得非常对!刚才俺看了源代码,确实理论上讲不通;——虽然实验结果是对的。
    没事,先有实验结果正确,就已经令人兴奋了。关键是刘前辈第一个想到了,理论证明要不了几天。用不了三年……

         如果等到理论证明X光为什么能透射人体,这个特性能应用在医学、工程材料检测……,那伦琴就等着当千年老二吧。遗憾,伦琴是德国人。

         刚看完《中国地》,一个日本反战的地质学者,在中国抗日战争年代在中国山区农村勘探了N年,中国的农民在艰苦的战争条件下善待保护养活他N年,中国地质老师指导他N年,最后为了争取世界第一最先发现古化石的名利,竟然可以甩掉中国老师,和中国农民对他的恩情,甚至可以动手杀人。这就是日本人对第一的态度。
     再说说韩国人,屈原已经成了韩国人?中国人再不争第一,连汉字也是韩国人发明的啦。
    所以,看着刘前辈第一个实验得出的结果,“他那理论上说不通呀……纯粹大忽悠……”

    说句实在话,谁如果没第一个想到、完成这样的实验,赶紧帮刘前辈理论证实一下,——无论对错,证伪也是高手,——也不失高手风范;至少也是千年老二。等前辈自己证明出来以后,诸位指责他人的高手会不会很尴尬……三年了,还玩关中断呢。“LZ概念清晰……”高手嚼别人的馍有味?

    要不,谁来一个和刘前辈不一样的、不影响中断的新鲜实验试试?让刘前辈无地自容,……来不了就别指责他人的成绩,都是男人,别太小气,做那种给人下绊儿的事,别让女人看不起……


看了123姐姐的帖子,再对照刘公公前辈的帖子,如果有人说刘公公前辈脑袋没有被门夹过,会有多少人相信?

使用特权

评论回复
37
highgear| | 2011-8-27 02:32 | 只看该作者
看123姐姐把楼主这脸打的 ;P

使用特权

评论回复
38
Cortex-M0| | 2011-8-27 07:55 | 只看该作者
37# highgear


别这久说,刘前辈的Keil  C51玩的绝对比俺转,俺连那最基本的几十个关键词都写不出,上二姨家,多谢刘前辈的指点,让俺小菜学了点皮毛,捡了点菜叶~~~


本贴纯粹俺瞎灌水,骗分,技术俺不懂,也不搞技术~~~

使用特权

评论回复
39
HORSE7812| | 2011-8-27 10:40 | 只看该作者
前辈是不是搞软件的啊?呵呵

使用特权

评论回复
40
Cortex-M0| | 2011-8-27 11:16 | 只看该作者
前辈是不是搞软件的啊?呵呵
HORSE7812 发表于 2011-8-27 10:40



刘前辈是专搞软件的高手,特别是将Keil C51搞的滚瓜烂熟,os裸奔啦,红杏出墙啦,等等等等。。。。  都是刘前辈最拿手的,俺跟在刘前辈后面,看看贴,灌灌水,学点皮毛捡点菜叶,自娱自乐一番~~~


俺不搞软件,也不搞技术,平时只管打杂救火,没人干的事才轮到俺干,有人干的事俺从不做,最多在后面顶个贴儿捧个人场,俺想找个工作打打工,至今没着落,唉,一声探叹息,满论坛的高手,都是精通这精通那,像这些 光学、化工、机械、电子、工艺啦,俺连一点皮毛都还没粘边,最多了解一点,好在红朝没有高技术也没有高科技,俺还能混口苦饭吃~~~

使用特权

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

本版积分规则