- Labornetzteil AliExpress         
Ergebnis 1 bis 5 von 5

Thema: Pullup Problem ATTINY13

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    17.05.2009
    Beiträge
    7

    Pullup Problem ATTINY13

    Anzeige

    E-Bike
    Hallo!

    Ich wollte nur wissen wie man bei diesem Programm den Pullup Wiederstand auf PINB2 festlegt



    Code:
    #include <avr/io.h>
    
    int main ()
    {
    int n;
    DDRB = (1<<PB3);
    while(1)
    {
    if ( PINB & (1<<PINB2) ) { /* Überprüfen ob 3. Bit in PINB gesetzt ist*/
     	PORTB |= (1<<PB3); /* PB3 Einschalten */
    	for (n = 0; n < 2000; n++); /* WARTEN */
        PORTB &= ~(1<<PB3); /* PB3 Ausschalten */
        for (n = 0; n < 2000; n++);/* WARTEN */
       }
    
    
    }
    }
    mfg

    chw-load

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    DDRB &= ~(1<<PB2); // PB2 auf Eingang
    PORTB = (1<<PB2); // PullUp einschalten

    Willkommen im RN-Forum

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    17.05.2009
    Beiträge
    7
    Danke für die rasche Antwort!

    Jetzt Blinkt aber die LED dauerhaft (ich glaube weil "PORTB = (1<<PB2);" also die if abfrage trifft immer zu)

    Kann man das Problem irgentwie beheben?

    mfg

    chw-load

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Der PullUp verbindet den Eingangspin intern mit Vcc (5V), ohne weitere Beschaltung des Pins ergibt die Abfrage deshalb immer high. Eine klassische Anwendung wäre z.B. ein Taster zwischen Eingangspin und GND. Dann ist allerdings die Logik vertauscht, ein gedrückter Taster (Kontakt geschlossen) wird dann als Low erkannt. Die Abfrage in deinem Programm sollte dann etwa so aussehen:

    if ( !(PINB & (1<<PINB2)) ) ...

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    17.05.2009
    Beiträge
    7
    Danke nochmals!

    mfg

    chw-load

Berechtigungen

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

Labornetzteil AliExpress