[技术问答] Timer0_Delay低频LIRC下无法使用问题

[复制链接]
864|12
 楼主| dqqqqqq 发表于 2020-5-5 14:02 | 显示全部楼层 |阅读模式
Timer0_Delay(38400,1,1000); 定时器零在38.4Khz主频下延时1毫秒,是这样吗?有详细的中文库函数说明吗?

ML51_BSP_C51_V1.00\SampleCode\StdDriver\UART2例程中无法使用,注释掉 //Timer0_Delay(38400,1,1000); UART2就可以发送了

代码如下:
     MFP_P21_UART2_TXD;
    P21_QUASI_MODE;

          set_SC0CR0_SCEN;         /* Enable SC module */
          set_SC0CR1_UARTEN;       /* set as UART mode */
          set_SC0CR1_CLKKEEP;      
          clr_SC0CR0_CONSEL;       /* clr CONSEL and AUTOCEN*/
          clr_SC0CR0_AUTOCEN;
          SC0ETURD0 = 0x07;        /* define baud rate low byte */
          SC0ETURD1 = 0x00;        /* define baud rate high byte */

          set_SC0CR1_PBOFF;     //parity bit disable
          SC0CR1&=0XCF;        //datalegth 8bit
          set_SC0CR0_NSB;      //stop bit = 1bit

    //下列几行代码什么含义?
    SFRS =1;
    TA=0xAA;
    TA=0x55;
    LVRDIS = 0x5A;
    TA=0xAA;
    TA=0x55;
    LVRDIS = 0xA5;
    TA=0xAA;
    TA=0x55;
    PORDIS = 0x5A;
    TA=0xAA;
    TA=0x55;
    PORDIS = 0xA5;

    FsysSelect(FSYS_LIRC);
    set_PCON_LPR;   
    while(1)
    {
      UART_Send_Data(UART2,0x50);  
      //Timer0_Delay(38400,1,1000);
    }



奔跑的牛 发表于 2020-5-6 10:37 | 显示全部楼层
Timer0_Delay(38400,1,1000);
选择高速时钟源
奔跑的牛 发表于 2020-5-6 10:39 | 显示全部楼层
.c文件上有@notice 说明哦

评论

你好,哪里有说明? 是这个吗? /** * @brief Timer0 delay setting * @param[in] u32SYSCLK define Fsys clock value. for example 24000000, use the real Fsys value. * - \ref 24000000 (use HIRC) *   发表于 2020-5-6 11:24
gejigeji521 发表于 2020-5-6 10:57 | 显示全部楼层
楼主认真阅读库函数的函数说明部分啊

评论

@奔跑的牛 :.c文件中没有注释  发表于 2020-5-6 13:15
@dqqqqqq :请看.c文件里相关的注释说明  发表于 2020-5-6 11:30
你好,请问哪里有函数库说明?  发表于 2020-5-6 11:24
gejigeji521 发表于 2020-5-7 10:00 | 显示全部楼层
/**
  * @brief Timer0 delay setting
  * @param[in] u32SYSCLK define Fsys clock value. for example 24000000, use the real Fsys value.
  *                       - \ref 24000000 (use HIRC)
  *                       - \ref 22118400 (use HXT)
  * @param[in] u8CNT define count time.
  * @param[in] u6DLYUnit define delay time base is us. From 1~10000, the maxima value please not over 10000.
  *                       - \ref 1000 (1ms)
  *                       - \ref 100 (100us)
  * @return  None
  * @NOTE    If use LIRC or LXT as Fsys need adjust this marco.
  * @exmaple :  Timer0_Delay(24000000,5,1000);
*/
这就是啊?
楼主莫非不认识英语?哈哈,那看到也白看的了。

gejigeji521 发表于 2020-5-7 10:01 | 显示全部楼层
NOTE    If use LIRC or LXT as Fsys need adjust this marco.
这句话意思,如果使用内部低频振荡器作为时钟源,需要你自己适配,也就是说需要你自己实现这个功能,另外要参考下面这个函数名。。
exmaple :  Timer0_Delay(24000000,5,1000);
意思是跟官方这个库函数保持统一。

评论

要是会用就不问了,ML51定位为超低功耗应用,那就需要把关于超低功耗的优化都做好,充分体现ML51的优点,而不是所有的用户都重复的自己做优化,这是理念问题......  发表于 2020-5-7 10:19
,需要你自己适配,也就是说需要你自己实现这个功能 所以说没有用处啊  发表于 2020-5-7 10:16
gejigeji521 发表于 2020-5-7 15:42 | 显示全部楼层
哈哈,抄底功耗也不是一直都在低频运行啊,抄底功耗的精髓不是低频运行,而是间歇运行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

91

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部