DAC am XMega

OP #1788599
Lesenswert?

Hallo,

ich habe ein Verständnisproblem beim Refresh des DACs beim Xmega. In 
2.2.2 der Application Note AVR1301 wird ausgesagt, dass der Wert 
zyklisch refreshed werden muss. Soweit alles OK. Im Absatz darunter 
heißt es dann, dass dies automatisch durchgeführt wird, wenn im TIMCTRL 
das REFRESH-Bitfeld entsprechend gesetzt wird.

Baut man nun den Beispiel-Source von Atmel so um, dass nur ein Wert 
ausgegeben wird, sieht man zwar auf dem Oszi den Peak, aber ein 
Auto-Refresh findet nicht statt und somit hat man auch keinen stabilen 
Ausgangswert.

Nachfolgend die geänderte Funktion:

void Example8a (void)
{

  /*  Given 2 MHz CPU speed, this is configured to 2µs separation time 
and
   *  16µs refresh time.
   */
  DAC_DualChannel_Enable( &DACA,
                          DAC_REFSEL_INT1V_gc /*DAC_REFSEL_AVCC_gc*/,
                          false,
                          DAC_CONINTVAL_4CLK_gc,
                          DAC_REFRESH_32CLK_gc );


    while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false )
    {
      /* Blocking code waiting for empty register. */
    }
    DAC_Channel_Write( &DACA, 0x0FFF, CH0 );


  while (1)
  {
  }

Irgendwie widersprechen sich diese beiden Aussagen in der APP-Note. Gibt 
es nun einen automatischen Refresh oder bin ich gezwungen zyklisch das 
DAC-Register immer neu zu beschreiben?  Wenn es den automatischen 
Refresh gibt, was mache ich dann falsch?

Gruß covalin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren