JAJZ022A 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 割り込みをブロックしないように、Continue-to-Interrupt モードを使用します。

    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 をクリア