-         

Ergebnis 1 bis 5 von 5

Thema: Pins einer Variable zuweisen

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

    Pins einer Variable zuweisen

    Anzeige

    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
    Kandel
    Alter
    29
    Beiträge
    1.220
    Schreib doch einfach ne Methode dafür ...

    mfG
    Markus

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    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
    23
    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
  •