- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: ATMega128 nur 8 Bit oder 16Bit Timer für PWM nutzbar, nicht beide gemeinsam...

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    .. Vielleicht kann mir ja wer mal einen Hinweis darüber geben , was ich da grundlegend falsch mache ..
    Hallo Gerhard,
    alles Gute im Neuen Jahr.

    Siehe Kommentar oben, also statt :

    DDRB = (1<<PB5)|(1<<PB6);

    schreibe ich:

    DDRB |= (1<<PB5)|(1<<PB6);

    (der senkrechte Strich vor dem Gleichheitszeichen: [Alt Gr]+[> <|]

    Gaanz zweifelhaft erscheint mir diese Schreibweise:

    TCCR1A = (1<< COM1A1) + (1<< COM1B1) + (1<< WGM11) + (1<< WGM10);
    TCCR1B = (1<< WGM12) + (1<< CS11);

    Was machen die vielen Pluszeichen? Hier empfiehlt sich ebenfalls die oben genannte Schreibweise: der "oder"Operator | vor dem Gleichheitszeichen und ebenso statt der Pluszeichen. Aber Deine Schreibweise habe ich nicht getestet. Sieht mir nur etwas sehr strange aus :-/ - und ich vermute, dass das keine Spezialität Deines Compilers ist.

    Mal (m)ein aktuell laufendes Beispiel (Studio4, mega1284) :
    Code:
    // ============================================================================= =
    // ===  Initialisierung fuer ADC    mega1284   MIT Interrupt free running
    //                              siehe Dokumentation Atmel-8272G-AVR-01/2015
    // ===    ADC0/PC0 auf 10 Bit,  fertige Wandlung ###>>> löst Interrupt aus
     void ADC0_i10free (void)       // Init ADC-0, 10 Bit, mit free runn. Interrupt
     {                            //          Kanal 0 <=> Temperatur RN VNRN-VN2
    // - - - - - - - - - - - - - - -
      ADMUX         =          0 ;  // Multiplexer zeigt auf ADC_0_ ! !
      ADMUX        |=  (1<<REFS0);  // Referenzspannung ist AVcc                 S 249
      ADCSRA       |=  (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);   // Prescaler=clock/128  251
      ADCSRA       |=  (1<<ADATE);  // Auto Triggering Enable                      250
            // es wird bei clock 20 Mhz alle ca. 86,40 µs getriggert: 20e6/128/13,5 =>
            //      11 574,07 Interrupts pro Sekunde (ca. 11kHz)
            // =>>  Erforderlich ist uU. eine Anpassung an die Quelle <<<<< === z.B.:
            //      Sharp GP2Y0A60SZLF ca. 20,5 ms/Wandlung => alle 237 ADC-ISR !!!
                    // genauer: ca 12 Zyklen in 1 ms <=> 1200 Hz
      ADCSRA       |= (1<<ADIE);    // ADC Interrupt Enable                        251
      ADCSRA       |= (1<<ADEN);    // ADC Enable                                  250
      ADCSRA       |= (1<<ADSC);    // starte gleich die erste Wandlung            250
    
      In_adc        = 0;            // Durchlaufzähler ADC zum Kanalumschalten
     }              // Ende von void ADC_in_10free(void)
    // ============================================================================= =
    Geändert von oberallgeier (09.01.2017 um 11:13 Uhr)
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. [ERLEDIGT] 16bit Timer Atmega2560 läuft zu schnell
    Von QuadV im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 19.12.2013, 07:49
  2. Welcher Controller hat 2 16BIT Timer
    Von Smith-mini-plane im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 17.12.2013, 22:02
  3. Zeitmessung via 16bit timer
    Von Martinius11 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 16.09.2010, 17:20
  4. Timer oder Interrupt reagiert nicht
    Von Sprengi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 21.08.2009, 20:59
  5. 16bit-PWM mit Timer 1 (Mega 8)
    Von Sauerbruch im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 26.10.2007, 16:36

Berechtigungen

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

LiFePO4 Speicher Test