www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel Beispiel ADC XMEGA Compiler Fehler


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe einen mir bisher noch nicht bekannten Fehler beim compilen 
meines ADC Codes für den XMEGA 128 A1.

Ich verwende das Beispiel von Atmel auf der Webseite.
Nun will ich den Code ausführen und bekomme folgende Fehlermeldung in 
dieser Funktion, die von Atmel gestellt wird.

../adc_driver.c:82: error: 'ADC_t' has no member named 'CALL'
../adc_driver.c:83: error: 'ADC_t' has no member named 'CALH'
../adc_driver.c:86: error: 'ADC_t' has no member named 'CALL'
../adc_driver.c:87: error: 'ADC_t' has no member named 'CALH'


Die Funktion lautet:
-----------------------------------------------------------------------

 void ADC_CalibrationValues_Load(ADC_t * adc)
{
  if(&ADCA == adc){
     /* Get ADCACAL0 from production signature . */
     adc->CALL = SP_ReadCalibrationByte( PROD_SIGNATURES_START + 
ADCACAL0_offset );
    adc->CALH = SP_ReadCalibrationByte( PROD_SIGNATURES_START + 
ADCACAL1_offset );
   }else {
     /* Get ADCBCAL0 from production signature  */
     adc->CALL = SP_ReadCalibrationByte( PROD_SIGNATURES_START + 
ADCBCAL0_offset );
     adc->CALH = SP_ReadCalibrationByte( PROD_SIGNATURES_START + 
ADCACAL1_offset );
   }
}

Das Struct ADC_t besitzt auch keine Elemente die CALL oder CALH heissen, 
zumindest nicht in meiner WINAVR Version.

Müsste ich ein WINAVR Update machen oder liegt hier ein Fehler im Code 
vor?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok mit WINAVR Update geht es nun.

Was ich nicht verstehe:

Ich möchte eine AD-Wandlung an den PINs B1, B4, B5 machen.
In dem Example kann ich nirgends die Verknüpfung eines Pins mit einem 
ADC Channel sehen.
Wo entsteht der Bezug zwischen virtuellem AD Channel und der Pin Nr?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs gefunden. In der
ADC_Ch_InputMux_Config

z.B. das Argument
ADC_CH_MUXPOS_PIN2_gc

ist dann PB2, wenn ich das richtig verstehe.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrekt.
Im Datenblatt des ATxmega A1 gibt es relativ am Ende eine 
Belegungstabelle der Pins. Sprich: Auf welchen Pins liegen welche 
Peripherals. Kannst ja mal reinschauen ("Pinout and Pin functions" -> 
"Alternate Pin functions").

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.