ZHCZ032A November   2024  – April 2025 AM2612

 

  1.   1
  2.   摘要
  3. 1使用说明和公告模型
  4. 2器件修订版本 1.0 使用说明和公告
    1. 2.1 器件修订版本 1.0 使用说明
      1.      i2324
    2. 2.2 器件修订版本 1.0 公告
      1.      i2189
      2.      i2310
      3.      i2311
      4.      i2345
      5.      i2351
      6.      i2352
      7.      i2353
      8.      i2354
      9.      i2356
      10.      i2357
      11.      i2358
      12.      i2359
      13.      i2374
      14.      i2383
      15.      i2411
      16.      i2412
      17.      i2427
      18.      i2428
      19.      i2433
      20.      i2439
      21.      i2440
      22.      i2479
      23.      i2480
  5. 3商标
  6. 4修订历史记录

i2356

CONTROLSS-ADC:如果未设置 INTxCONT(继续中断模式),中断可能会停止

详细信息:

在 ADCINTSELxNx[INTxCONT]= 0 时,设置 ADCINTFLG 后,中断将停止,并且不会发生其他 ADC 中断。若在 ADCINTFLGCLR 寄存器进行软件写入的同时发生 ADC 中断,则 ADCINTFLG 将意外保持为设置状态,阻止将来发生 ADC 中断。

权变措施:

  1. 使用 “继续中断” 模式,则 ADCINTFLG 无法阻止其他 ADC 中断:

    ADCINTSEL1N2[INT1CONT] = 1;

    ADCINTSEL1N2[INT2CONT] = 1;

    ADCINTSEL3N4[INT3CONT] = 1;

    ADCINTSEL3N4[INT4CONT] = 1;

  2. 为了避免发生这种情况,请确保下一次发生 ADC 中断之前,始终有足够的时间为 ADC ISR 提供服务并清除 ADCINTFLG。
  3. 清除 ADCINTFLG 时,请检查 ISR 中是否存在溢出情况。在写入到 ADCINTFLGCLR 后立即检查 ADCINTOVF;如果已设置,则再次写入 ADCINTFLGCLR以确保 ADCINTFLG 已被清除。若再设置 ADCINTOVF 寄存器,则表示已丢失 ADC 转换中断。

    AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 INT1 标志

    if (1 => AdcaRegs.ADCINTOVF.bit.ADCINT1)//ADCINT 溢出

    {

    AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //再次清除 INT1

    //如果应用程序将忽略 ADCINTOVF 条件

    //然后通过向 ADCINTOVFCLR 写入 1 来清除此处的标志。

    //如果有 ADCINTOVF 处理例程,则插入任意一个

    //该代码并清除此处的 ADCINTOVF 标志,或者不清除

    //此处设置 ADCINTOVF,使外部例程检测到

    //条件。

    // AdcaRegs.ADCINTOVFCLR.bit.ADCINT1 = 1;//清除 OVF