ZHDZ010F March   2022  – May 2026 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1

 

  1.   1
  2. 1使用说明和公告模型
  3. 2器件使用说明
    1.     i2324
    2.     i2348
    3.     i2364
    4.     i2508
  4. 3器件公告
    1.     i2310
    2.     i2311
    3.     i2313
    4.     i2329
    5.     i2345
    6.     i2346
    7.     i2347
    8.     i2349
    9.     i2350
    10.     i2352
    11.     i2353
    12.     i2354
    13.     i2355
    14.     i2356
    15.     i2357
    16.     i2358
    17.     i2359
    18.     i2374
    19.     i2375
    20.     i2386
    21.     i2392
    22.     i2393
    23.     i2394
    24.     i2395
    25.     i2401
    26.     i2402
    27.     i2403
    28.     i2404
    29.     i2405
    30.     i2427
    31.     i2428
    32.     i2433
    33.     i2438
    34.     i2439
    35.     i2488
    36.     i2499
    37.     i2500
    38.     i2502
    39.     i2503
  5.   商标
  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; //clear INT1 flag
    if(1 == AdcaRegs.ADCINTOVF.bit.ADCINT1) //ADCINT overflow
    {
     AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //clear INT1 again
    // If the ADCINTOVF condition will be ignored by the application
    // then clear the flag here by writing 1 to ADCINTOVFCLR.
    // If there is a ADCINTOVF handling routine, then either insert
    // that code and clear the ADCINTOVF flag here or do not clear
    // the ADCINTOVF here so the external routine will detect the
    // condition.
    // AdcaRegs.ADCINTOVFCLR.bit.ADCINT1 = 1; // clear OVF