WCH沁恒单片机
直播中

李晨灵

7年用户 1437经验值
私信 关注
[问答]

CH565开发加入自定义的函数异常问题如何解决?

      CH565开发加入自定义的函数,无法达到延时效果。主程序和延时函数如下。
      采用系统自带的DelayMs函数可以达到延时效果。采用自定义delay_1ms函数,无论此处的延时时间设置为多少,好像都没有起到延时效果。
while(1)                          
   {
      // 单字节发送
      R32_PA_CLR |= 1<<12;               // 设置为低电平
      SPI0_MasterTrans( spiBuff, 9 );    // 发送数据
      R32_PA_OUT |= 1<<12;               // 设置为高电平
      delay_1ms(50);                     // 延时
      //DelayMs( 1 );
   }


void delay_Nus(UINT32 count)
{
     UINT32 i = 0;
     UINT32 j = 0;


    for(i=0;i    {
        for(j=0;j<100;j++)   // 延时1us,时钟108M,具体要实测,
        {


        }
    }
}


void delay_1ms(UINT32 count)

{
     UINT32 i = 0;


    for(i=0;i    {
       delay_Nus(1000);
    }
}




回帖(3)

李悠冉

2022-6-1 09:28:31
这个地方可能是代码被优化掉了,试试看在delay_Nus里面随意读写一个寄存器,或者加上一个NOP。
举报

马健

2022-6-1 09:28:35
NOP加入进去,编译不通过。是不是系统不识别NOP这条语句
举报

李伟

2022-6-1 09:28:46
core_riscv.h头文件中有nop的写法
举报

更多回帖

发帖
×
20
完善资料,
赚取积分