-         

Ergebnis 1 bis 2 von 2

Thema: AT91SAM7X - ADC benutzen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.11.2007
    Beiträge
    6

    AT91SAM7X - ADC benutzen

    Anzeige

    Hallo Zusammen,

    ich versuche grade den ADC von einem AT91SAM7X zum laufen zu bekommen. Aber irgendwie bekomm ich keine Werte raus.
    Kann mir jemand die Schritte sagen, die dazu nötig sind? Denke es ist irgendwo eine Kleinigkeit wo ich mich vertue.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.07.2005
    Ort
    Enns
    Alter
    32
    Beiträge
    129
    hi,

    hätte zum thema ein kleines C-beispiel:

    Code:
    //adc.c
    #include "adc.h"
    #include "at91sam7x256.h"
    
    AT91PS_ADC a_pADC = AT91C_BASE_ADC;
    AT91PS_PMC a_pPMC = AT91C_BASE_PMC;
    
    void InitADC(void) {
    
      // Enable clock for interface
      a_pPMC->PMC_PCER = 1 << AT91C_ID_ADC;
    
      // Reset
      a_pADC->ADC_CR = 0x1;
      a_pADC->ADC_CR = 0x0;
    
      // Set maximum startup time and hold time
      a_pADC->ADC_MR = 0x0F1F0F00;
    
    }
    
    
    unsigned int GetAdcChanel(unsigned char chanel) {
    
      // variable
      unsigned int result;
    
      // Enable desired chanel
      a_pADC->ADC_CHER = chanel;
    
      // Start conversion
      a_pADC->ADC_CR = 0x2;
    
      // wait for end of convertion
      while(!(a_pADC->ADC_SR&chanel));
    
      switch (chanel) {
    
        case ADC_CHN_1: result = a_pADC->ADC_CDR0; break;
        case ADC_CHN_2: result = a_pADC->ADC_CDR1; break;
        case ADC_CHN_3: result = a_pADC->ADC_CDR2; break;
        case ADC_CHN_4: result = a_pADC->ADC_CDR3; break;
        case ADC_CHN_5: result = a_pADC->ADC_CDR4; break;
        case ADC_CHN_6: result = a_pADC->ADC_CDR5; break;
        case ADC_CHN_7: result = a_pADC->ADC_CDR6; break;
        case ADC_CHN_8: result = a_pADC->ADC_CDR7; break;
      }
    
      return result;
    
    }
    lg, zentauro

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •