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


von Matthias (Gast)


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?

von Matthias (Gast)


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?

von Matthias (Gast)


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.

von Simon K. (simon) Benutzerseite


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").

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.