- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 52

Thema: GCC Beispiele für AVR?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    38
    Beiträge
    215
    Da ich vor kurzer Zeit auch noch ziemlicher Anfänger war was Microcontroller betrifft finde ich diesen Thread sehr gut. Ich will einfach mal nen Stück Quelltext anhängen. Das ist sozusagen eine kleine
    ADconverting Bibliothek die nur aus #define´s besteht.
    Gruß Muraad

    Code:
    #include <io.h>
    #define ADCinit           ADCSRA|=_BV(ADEN)         // Teilt dem Board mit das der jeweilige Port für ADC verwendet wird
    #define ADCdisable        ADCSRA &=~_BV(ADEN)       // machs das vorherige wieder rückgänig
    #define ADCstart          ADCSRA|=_BV(ADSC)         // startet eine konvertierung auf dem gewünschten Kannal/Pin
    #define ADCfree           ADCSRA|=_BV(ADATE)        // schaltet den freilaufenden Modus ein
    #define ADCvintern        ADMUX=_BV(REFS1) |_BV(REFS0)     // interne Spannungsversorgung
    #define ADCprescaler_2    ADCSRA |=_BV(ADPS0)              // gewünschter Teilungsfaktor/Prescaler 
    #define ADCprescaler_4    ADCSRA|=_BV(ADPS1)
    #define ADCprescaler_8    ADCSRA=_BV(ADPS1) | _BV(ADPS0)
    #define ADCprescaler_16   ADCSRA|=_BV(ADPS2)
    #define ADCprescaler_32   ADCSRA=_BV(ADPS2) | _BV(ADPS0)
    #define ADCprescaler_64   ADCSRA=_BV(ADPS2) | _BV(ADPS1)
    #define ADCprescaler_128  ADCSRA=_BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0)
    #define ADCchannel_1                                      //gewünschter Kannal z.B bei ATmega32 PINA0 - PINA7
    #define ADCchannel_2      ADMUX|=_BV(MUX0)                // bei nicht freilaufen muss ADCchannel_x vor
    #define ADCchannel_3      ADMUX|=_BV(MUX1)                // ADCstart kommen dann kann man mit getadc() der 
    #define ADCchannel_4      ADMUX= _BV(MUX1) | _BV(MUX0)    // Adcwert des gewählten Kannals auslesen
    #define ADCchannel_5      ADMUX|=_BV(MUX2)
    #define ADCchannel_6      ADMUX= _BV(MUX2) | _BV(MUX0)
    #define ADCchannel_7      ADMUX= _BV(MUX2) | _BV(MUX1)
    #define ADCchannel_8      ADMUX= _BV(MUX2) | _BV(MUX1) | _BV(MUX0)
    
    inline unsigned int getadc(void)
    {
       while (ADCSRA & _BV(ADSC)) {}
       return ADC;
    }
    Angehängte Dateien Angehängte Dateien

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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

12V Akku bauen