- Labornetzteil AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 23 von 23

Thema: _delay_ms()

  1. #21
    Benutzer Stammmitglied
    Registriert seit
    03.08.2004
    Ort
    München
    Beiträge
    52
    Anzeige

    E-Bike
    oder so... aber wie genau schaut dann dieses interrupt aus? ich weiß, dass die frage naiv ist, aber dafür ist es ja ein forum
    Man muss die Welt nicht verstehen,
    man muss sich nur in ihr zurecht finden.
    [A. Einstein]

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2004
    Ort
    Zuhause
    Alter
    38
    Beiträge
    28

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    10.07.2005
    Beiträge
    8

    Fehler im AVR-GCC Tutorial

    Hi!

    Kann es sein, dass ein Fehler im http://www.mikrocontroller.net/artic...R-GCC-Tutorial ist ?

    Im Abschnitt 9.5.2.2 (Tasten-)Entprellung

    Code:
    #include <avr/io.h>
    #include <inttypes.h>
    #ifndef F_CPU
    #define F_CPU 3686400UL     /* Quarz mit 3.6864 Mhz  */
    #endif
    #include <avr/delay.h>      /* definiert _delay_ms() ab avr-libc Version 1.2.0 */
    
    /* Einfache Funktion zum Entprellen eines Tasters */
    inline uint8_t debounce(volatile uint8_t *port, uint8_t pin)
    {
            if ( ! (*port & (1 << pin)) )
            {
                    /* Pin wurde auf Masse gezogen, 100ms warten   */
                    _delay_ms(100);
                    if ( ! (*port & (1 << pin)) )
                    {
                            /* Anwender Zeit zum Loslassen des Tasters geben */
                            _delay_ms(100);
                            return 1;
                    }
            }
            return 0;
    }
    
    int main(void)
    {
            DDRB &= ~( 1 << PB0 );                 /* PIN PB0 auf Eingang (Taster)            */
            PORTB |= ( 1 << PB0 );                 /* Pullup-Widerstand aktivieren            */
            ...
            if (debounce(&PINB, PB0))             /* Falls Taster an PIN PB0 gedrueckt..    */
                    PORTD = PIND ^ ( 1 << PD7 );  /* ..LED an Port PD7 an-
                                       bzw. ausschalten */
            ...
    }
    Hier wird ein delay mit 100ms angegeben. Aber 262.14ms/ 3.6864Mhz ergeben 71,1ms. Oder habe ich das nicht richtig verstanden ?

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Solar Speicher und Akkus Tests