找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

M451 要讀取 EADC的 溫感Vtemp該怎麼設置

[复制链接]
跳转到指定楼层
楼主
chu399 发表于 2017-3-19 13:20:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如題,我發現使用 "EADC_ADINT_Trigger" EXAMPLE CODE的設置:

void EADC_ConfigSampleModule(EADC_T *eadc, \
                             uint32_t u32ModuleNum, \
                             uint32_t u32TriggerSrc, \
                             uint32_t u32Channel)



他的描述:  * @param[in] u32ModuleNum Decides the sample module number, valid value are from 0 to 15.
不過Vtemp能用的模組照說明文件是16~18,這樣不就是不能填了。

我照著初始化是動不了,它不會進入中斷。

請問該怎麼設定呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
yjgna 发表于 2017-4-25 10:40:21 | 只看该作者
内部间隙电压和温度传感器
void ADC_Init(void)
{
        /* configure AVDD as reference voltage*/
                SYS_UnlockReg();
                SYS->VREFCTL |= 1<<4;
                SYS_LockReg();       
       
           /* Enable EADC module clock */
    CLK_EnableModuleClock(EADC_MODULE);

    /* EADC clock source is HCLK(72MHz), set divider to 8, ADC clock is 72/8 MHz */
    CLK_SetModuleClock(EADC_MODULE, 0, CLK_CLKDIV0_EADC(8));

//    /* Configure the GPB9 for ADC analog input pins.  */
//    SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB9MFP_Msk | SYS_GPB_MFPH_PB10MFP_Msk);
//    SYS->GPB_MFPH |= SYS_GPB_MFPH_PB9MFP_EADC_CH6 | SYS_GPB_MFPH_PB10MFP_EADC_CH7;

//    /* Disable the GPB9 digital input path to avoid the leakage current. */
//    GPIO_DISABLE_DIGITAL_PATH(PB, BIT9);
//    GPIO_DISABLE_DIGITAL_PATH(PB, BIT10);

    /* Set the ADC internal sampling time, input mode as single-end and enable the A/D converter */
    EADC_Open(EADC, EADC_CTL_DIFFEN_SINGLE_END);
    EADC_SetInternalSampleTime(EADC, 6);

    /* Configure the sample module 0 for analog input channel 6 and software trigger source.*/
//    EADC_ConfigSampleModule(EADC, 16, EADC_SOFTWARE_TRIGGER, 16);
//    EADC_ConfigSampleModule(EADC, 17, EADC_SOFTWARE_TRIGGER, 17);

                SYS->IVSCTL |= SYS_IVSCTL_VTEMPEN_Msk;
               
    EADC_ENABLE_SAMPLE_MODULE_INT(EADC, 0, 1<<16);//Enable ADINT0 sample module 16 interrupt .
               
    EADC_ENABLE_SAMPLE_MODULE_INT(EADC, 1, 1<<17);//Enable ADINT1 sample module 17 interrupt.

    /* Clear the A/D ADINT0 interrupt flag for safe */
    EADC_CLR_INT_FLAG(EADC, 0x3);

    /* Enable the sample module 0 interrupt.  */
    EADC_ENABLE_INT(EADC, 0x3);//Enable sample module A/D ADINT0 interrupt.
               
                NVIC_EnableIRQ(ADC00_IRQn);
               
                NVIC_EnableIRQ(ADC01_IRQn);
}
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU