打印
[技术问答]

Timer0_Delay低频LIRC下无法使用问题

[复制链接]
692|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 说明哦

使用特权

评论回复
评论
dqqqqqq 2020-5-6 11:24 回复TA
你好,哪里有说明? 是这个吗? /** * @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) * ...  
地板
gejigeji521| | 2020-5-6 10:57 | 只看该作者
楼主认真阅读库函数的函数说明部分啊

使用特权

评论回复
评论
dqqqqqq 2020-5-6 13:15 回复TA
@奔跑的牛 :.c文件中没有注释 
奔跑的牛 2020-5-6 11:30 回复TA
@dqqqqqq :请看.c文件里相关的注释说明 
dqqqqqq 2020-5-6 11:24 回复TA
你好,请问哪里有函数库说明? 
5
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);
*/
这就是啊?
楼主莫非不认识英语?哈哈,那看到也白看的了。

使用特权

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

使用特权

评论回复
评论
dqqqqqq 2020-5-7 10:19 回复TA
要是会用就不问了,ML51定位为超低功耗应用,那就需要把关于超低功耗的优化都做好,充分体现ML51的优点,而不是所有的用户都重复的自己做优化,这是理念问题...... 
dqqqqqq 2020-5-7 10:16 回复TA
,需要你自己适配,也就是说需要你自己实现这个功能 所以说没有用处啊 
7
gejigeji521| | 2020-5-7 15:42 | 只看该作者
哈哈,抄底功耗也不是一直都在低频运行啊,抄底功耗的精髓不是低频运行,而是间歇运行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

91

帖子

0

粉丝