Wenn die Aufgabenstellung wie folgt lautet, ist dann meine Lösung siehe unten richtig? Aufgabe: erstellen sie eine main() Funktion welche folgende Spezialfunktionen (bereitstellet?) o WDT deaktivieren o Port1: P1.0, P1.3, P1.4 = Ausgang, alle anderen Eingang § P1.1, P1.2 = interruptfähig o Port 2: Alle als binäre Eingänge o Port6: Alle als Eingang mit Spezialfunktion (hier ADC-Eingangssignal) dieser ist als binärer Ausgang zu initiieren void main (void) { WDTCTL = WDTPW + WDTHOLD; //WDT deaktivieren //PORT1 P1OUT = 0x00; P1DIR = 0x91; //(=00011001b) macht Pins 0,3,4 P1IE = 0x06; //(=00000110) macht Pins 1,2 interruptfähig //PORT2 P2SEL = 0x00; // Alle Port_2.Pins als Bin-IO P2DIR = 0x00; // Alle Port.Pins als Input schalten //PORT6 P6SEL = 0xFF; // Alle Port_6.Pins als Bin-IO P6DIR = 0x01; // Pin6.0 als binärer Ausgang alle anderen ADC _EINT(); While(1) { _NOP(); } } vielen Dank, Paul
> P1DIR = 0x91; //(=00011001b) macht Pins 0,3,4
Wie kommst du auf 0x91?
Hat dein System keine fertigen Konstanten für die Pinnummern?
Wenn ja, dann schriebs doch so (siehe unten). Wenn nein, dann definiere
dirc welche und schreibs auch so
1 | #define PIN_0 0
|
2 | #define PIN_1 1
|
3 | #define PIN_2 2
|
4 | #define PIN_3 3
|
5 | #define PIN_4 4
|
6 | #define PIN_5 5
|
7 | #define PIN_6 6
|
8 | #define PIN_7 7
|
9 | |
10 | |
11 | ...
|
12 | |
13 | P1DIR = ( 1 << PIN_0 ) | ( 1 << PIN_3 ) | ( 1 << PIN_4 ); |
da kann dann auch ein Blinder greifen, welche Bits auf 1 gesetzt werden und muss nicht mühselig Bits zählen. Ganz abgesehen davon, dass dann auch der Kommentar überflüssig wird, was ja grundsätzlich eine gute Sache ist. Ein Kommentar, den keiner braucht, weil alles Wissenswerte im Code enthalten ist und den man deswegen weglässt, ist ein guter Kommentar. (Die anderen bitmässigen Zuweisungen natürlich dementsprechend auch ersetzen)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.