PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pins einer Variable zuweisen



Thomas8443
28.07.2009, 11:11
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

markusj
28.07.2009, 11:48
Schreib doch einfach ne Methode dafür ...

mfG
Markus

askazo
28.07.2009, 12:02
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:

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:

#define S1 (PINB & 0x02)
if (S1)
//tue etwas

Gruß,
askazo

BurningWave
29.07.2009, 17:03
... oder einfach ein Makro definieren, das eine als Parameter angegebene Pin abfragt und das Ergebnis zurückgibt

mfg

christian_u
30.07.2009, 20:37
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/product_info.php/products_id/68