- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Pins einer Variable zuweisen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.12.2008
    Alter
    33
    Beiträge
    12

    Pins einer Variable zuweisen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo!

    habe an meinen atmega32 5 Sensoren angeschlossen. diese werden im laufe des c-programms sehr oft verwendet. Es ist deswegen nervig die Pins jedes mal mithilfe einer maske abzufragen.
    kann ich zum beispiel PortB.1 einer bool variable "s1" zuweisen sodass ich im späteren verlauf des programms nur mehr "s1" abfragen muss?
    bin noch ziemlicher anfänger in diesem bereich und bin deswegen für jede hilfe dankbar!!!

    lg thomas

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Schreib doch einfach ne Methode dafür ...

    mfG
    Markus

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    48
    Beiträge
    1.146
    Da gibt's mehrere Möglichkeiten.
    Wenn das Abfragen der Sensoren nicht zeitkritisch ist, kannst Du einfach in der Hauptschleife die Sensoren einlesen und den Wert einer Variablen zuweisen.

    Wenn Du zeitgenau den Zustand der Sensoren benötigst, kannst Du
    a) die Abfrage als Funktion erstellen, so dass Du diese nur noch aufrufen musst:
    Code:
    bool s1(void)
    {
    return (PINB & 0x02);
    }
    
    if (s1())
    //tue etwas

    b) die Abfrage als Makro erstellen, so dass Du nur noch das Makro abfragen musst:
    Code:
    #define S1 (PINB & 0x02)
    if (S1)
    //tue etwas
    Gruß,
    askazo

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    29
    Beiträge
    656
    ... oder einfach ein Makro definieren, das eine als Parameter angegebene Pin abfragt und das Ergebnis zurückgibt

    mfg

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.02.2009
    Beiträge
    195
    Schau mal in die Daten zu meinem AVR Einsteigerset, da kannst du einfach sowas machen:

    #define LEDPort PortB.Output.Pin4

    LEDPort = 1;
    LEDPort = 0;

    http://shop.ullihome.de/catalog/prod...products_id/68

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad