王云可 发表于 2024-10-27 10:04:25

wnagming 发表于 2024-10-27 07:46
你这50000是不是数字太大了

换成10000也不行

jwd 发表于 2024-10-27 10:26:25

王云可 发表于 2024-10-27 09:54
让灯一删一闪的

你这个P00也没有反转啊,再一个for循环里面{1;}这种没见过这种写法吧
P40=0;
while(1)
{
   for(i=0;i<50000;i++);
       P00=!P00;

}
你这样试试

晓飛飛 发表于 2024-10-27 12:51:27

wnagming 发表于 2024-10-27 07:46
你这50000是不是数字太大了

24MHz的时候, 循环50000差不多是10Hz左右,应该闪的非常明显,

王云可 发表于 2024-10-27 17:13:05

jwd 发表于 2024-10-27 10:26
你这个P00也没有反转啊,再一个for循环里面{1;}这种没见过这种写法吧
P40=0;
while(1)


也不行啊

jwd 发表于 2024-10-27 20:47:11

王云可 发表于 2024-10-27 17:13
也不行啊

单步仿真试试

haiyang201 发表于 2024-10-28 11:41:23

Tuier 发表于 2024-10-27 07:03
这样改试试:
......
P40=0;


你这闪的太快根本看不到

haiyang201 发表于 2024-10-28 11:46:04

soma 发表于 2024-10-27 08:57
当前程序p00常亮啊,xtal软件仿真的晶振频率
P40=0;
while(1)


加多几个空指令

祁祁祁 发表于 2024-11-4 10:32:39

jwd 发表于 2024-10-27 10:26
你这个P00也没有反转啊,再一个for循环里面{1;}这种没见过这种写法吧
P40=0;
while(1)


???,你这个闪频不是特别高

祁祁祁 发表于 2024-11-4 10:38:10

void Delay100ms(void)        //@35MHz
{
        unsigned char data i, j, k;

        _nop_();
        _nop_();
        i = 14;
        j = 77;
        k = 153;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}
可以试试这个,可能还是太快了,
void main()
{
unsigned int i ,j;
P4M0=0X00;P4M1=0X00;
P0M0=0X00:P0M1=0X00;
P40=0;
P00=0;
    while(1)
    {
      Delay100ms();
      P00=~P00;
    }
}
页: 1 [2]
查看完整版本: 新手问题求回答