Yim_Hom 发表于 2024-7-7 22:19:20

神农鼎 发表于 2024-7-7 21:58
以前头文件中有做了 ET2的宏定义,后来有些新人不理解 ET2 这个宏定义,
并且还批评其他的一些技巧,我们 ...

其实也不是,仅是个人见解,您听一下,采不采纳不重要。
比现有的稍微加一点点“花活”。。。
或者就两手准备,一是还是保留现有的方式,再增加一种稍微花一点的方式。
以后的以后,库是趋势,类似于CUBEIDE也是趋势。哪怕就是全部用#define加三目运算符组成库都可以,这样一来,库函数简单好用,还有寄存器版本的背书。
再者,初学者到一定程度上,对C语言的掌握是需要有进步的,也会有更高层次的需求。加入另一个稍微比现有加一点点难度的版本,也体现STC本身是具备可以更高的level。
最后,如果将来有了arm的内核,库函数不仅不可避免,也一定会有更加上难度的C。同时官方例程也能来点逻辑和编程思维的引导,会更加锦上添花。

sqj 发表于 2024-7-7 23:23:59

学到了

潘豆豆 发表于 2024-7-8 03:32:08

希望学习这款单片机!有大佬赠送么!

soma 发表于 2024-7-8 08:21:44

潘豆豆 发表于 2024-7-8 03:32
希望学习这款单片机!有大佬赠送么!

可以官方免费申请,屠龙刀或者开天斧

liuming 发表于 2024-7-8 08:39:23

神农鼎 发表于 2024-7-7 21:58
以前头文件中有做了 ET2的宏定义,后来有些新人不理解 ET2 这个宏定义,
并且还批评其他的一些技巧,我们 ...

你好前辈,最后一个疑点再请教一下,这些程序都是以前正常编译通过的,都是用了两年以上的程序了,我好奇的是最近电脑及软件都没有改动过,这个头文件是什么时候自动更新的?

liuming 发表于 2024-7-8 08:55:56

Yim_Hom 发表于 2024-7-7 19:48
我特意把STC8C的头文件搞下来看了一下,如你所说,没有ET2




谢谢大神
        T2H = (65536-50000)/256;                                        //定时器2 定时50ms
    T2L = (65536-50000)%256;                  //65536-11.0592M/12/1000
    AUXR = 0x10;                              //启动定时器
//    IE2 = ET2;                              //使能定时器中断           头文件无ET2的定义,换下一句用
        IE2 |= 0x04;                                                                //使能定时器中断

问题解决

Build target 'Target 1'
compiling TYAC_E.c...
linking...
Program Size: data=52.0 xdata=0 code=3288
creating hex file from "8C_E52"...
"8C_E52" - 0 Error(s), 0 Warning(s).

Yim_Hom 发表于 2024-7-8 09:11:55

liuming 发表于 2024-7-8 08:55
谢谢大神




不客气,还是得多花些精力放在基础的中断、定时器上,养成一个完善的习惯,以后肯定偷着乐{:lol:}

神农鼎 发表于 2024-7-8 10:09:01

以前有这个宏定义的,后来被建议的去掉了,仁者见仁智者见智
部分数据手册中保留了这个宏声明,不在头文件中,
这样大家容易理解,是啥 !!!







神农鼎 发表于 2024-7-8 10:13:16

这包含去掉了 那个 ET2 宏定义的头文件,就会可能出错



STC8H.h 有定义这个宏








这程序,我们写的很爽,
但新人还是要打开 头文件看下,为何程序简洁,
那是 头文件里面的宏在支持








页: 1 [2]
查看完整版本: 8C芯片,ET2未定义的情况,请教一下