- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 25

Thema: Einstieg in C (WinAVR)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #10
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Es gibt eben kein pin0, die Pins für den Port B sind so definiert:

    Code:
    /* PORTB */
    #define PB7	7
    #define PB6	6
    #define PB5	5
    #define PB4	4
    #define PB3	3
    #define PB2	2
    #define PB1	1
    #define PB0	0
    
    /* DDRB */
    #define DDB7	7
    #define DDB6	6
    #define DDB5	5
    #define DDB4	4
    #define DDB3	3
    #define DDB2	2
    #define DDB1	1
    #define DDB0	0
    
    /* PINB */
    #define PINB7	7
    #define PINB6	6
    #define PINB5	5
    #define PINB4	4
    #define PINB3	3
    #define PINB2	2
    #define PINB1	1
    #define PINB0	0
    Das stammt aus der oben gezeigten iom8.h-Datei.

    Die Datenrichtung wird wird im Datenrichtungsregister (DataDirectionRegister oder DDRx) angegeben, das ist aber auch in Bascom so. Ein gesetzes Bit im Register bedeutet Ausgang, nicht gesetzt bedeutet Eingang. Um PORTB.0 als Ausgang zu nutzen, muss man das Bit 0 im DDRB-Register setzen, möglichst ohne die anderen Bits zu beeinflussen. Das würde dann so aussehen:

    DDRB = DDRB | 1; // Die Kurzform wäre DDRB |= 1; Pin B0 ist Ausgang
    DDRB = DDRB & 254; // Kurzform DDRB &= 254; Pin B0 ist Eingang

    Für die 1 kann man auch (1<<0) schreiben, oder, weil lesbarer, (1<<DDB0)

    Pin auf High: PORTB |= (1<<PB0);
    Pin auf Low: PORTB &= ~(1<<PB0); // ausgeschrieben ist das PORTB = PORTB & ~(0b0000 0001); die Tilde~ invertiert jedes Bit, also PORTB = PORTB & 0b1111 1110

    Pin als Eingang auf High prüfen: if(PINB & 1)... wobei man dann die 1 wieder durch (1<<PINB0) ersetzen kann. usw.usw.

    http://www.mikrocontroller.net/artic...f_auf_Register
    http://www.mikrocontroller.net/artic...f_auf_IO-Ports

    Gruß

    mic
    Geändert von radbruch (30.01.2013 um 21:11 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Fehlermeldung WinAVR
    Von hvltt15 im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 10.04.2008, 20:31
  2. MFile [WinAVR]
    Von siroks im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 17.01.2008, 21:22
  3. WinAVR
    Von Chattychan im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 12.09.2006, 13:41
  4. WinAvr
    Von LC-HC im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 30.08.2005, 14:10
  5. WinAVR Tutorial
    Von Kjion im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 12.08.2004, 10:36

Berechtigungen

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

Solar Speicher und Akkus Tests