用户3 发表于 2024-12-22 21:40:11

【求助8G1K08】无法编译

<p><strong>【求助】STC8G1K08无法编译</strong></p>
<p><strong>T0定时器的这些相关标志位和寄存器无法编译,全都按数据手册来的,stc8g.h头文件也是官方ISP提供的,也放在了项目根目录里,&lt;stc8g.h&gt;和&quot;stc8g.h&quot;也都用了,始终无法编译,不知道错在哪里</strong></p>
<p><img src="data/attachment/forum/202412/22/212520dwohmrq7xaau1qyx.png" alt="1.png" title="1.png" /></p>
<p><img src="data/attachment/forum/202412/22/212531pe958fkrr8fhrj8f.png" alt="2.png" title="2.png" /></p>
<p>源代码:</p>
<p>`#include &lt;stc8g.h&gt;</p>
<p>sbit        T0x12=AUXR^7;<br />
sbit        EAXFR=P_SW2^7;<br />
sfr           WTST=0xE9;<br />
sbit        LED=P3^3;</p>
<p>void SET()<br />
{<br />
RS0=0;<br />
RS1=0;<br />
WTST=0;<br />
EAXFR=1;        //P_SW2.7=1 允许访问XFR<br />
}</p>
<p>void Timer_T0(unsigned int H,unsigned int L)<br />
{<br />
T0_CT=0;        //T0_CT=0用作定时器,=1用作计数器<br />
T0x12=0;        //定时器T0=12T模式<br />
//TH+TL脉冲数=65536-{要定的时间/[(1/MHZ)x12]}<br />
TH0=H;<br />
TL0=L;<br />
T0_M1=0;<br />
T0_M0=0;        //T0定时器16位自动重装模式<br />
TF0=0;<br />
EA=1;                //打开总中断开关<br />
ET0=1;                //允许定时器T0中断<br />
TF0=0;<br />
T0_GATE=0;<br />
TR0=1;                //启动定时器T0</p>
<p>}</p>
<p>void ISR_T0()interrupt 1<br />
{<br />
LED=~LED;<br />
}</p>
<p>void main()<br />
{<br />
SET();<br />
Timer_T0(0xFD,0xF2);<br />
while(1)<br />
{<br />
LED=LED;<br />
}</p>
<p>}`</p>

邮箱 发表于 2024-12-22 22:23:03


用户3 发表于 2024-12-23 12:59:27

邮箱 发表于 2024-12-22 22:23


<p>**非常感谢大哥点拨,修改后问题已解决,这个程序原本是32G12k128的程序,这么写没问题,但移植到8g1k08后没注意到位寻址这个小细节<img alt="baoquan" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/baoquan.gif" title="baoquan" /> <img alt="baoquan" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/baoquan.gif" title="baoquan" /> <img alt="baoquan" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/baoquan.gif" title="baoquan" /> **</p>
<p><img src="data/attachment/forum/202412/23/125813jqigj87gjixjbipd.png" alt="1.png" title="1.png" /></p>

Lkck8210 发表于 2024-12-24 09:50:53

用户3 发表于 2024-12-23 12:59
**非常感谢大哥点拨,修改后问题已解决,这个程序原本是32G12k128的程序,这么写没问题,但移植到8g1k08 ...

因为STC32是全寄存器都可位寻址的

用户3 发表于 2025-1-5 12:51:11

Lkck8210 发表于 2024-12-24 09:50
因为STC32是全寄存器都可位寻址的

以后就会注意这个问题了
页: [1]
查看完整版本: 【求助8G1K08】无法编译