mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ports initialisieren


Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man so nicht entscheiden, weil weder µC noch Compiler bekannt sind.

Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uC ist der MSP430f44x

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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
#define PIN_0   0
#define PIN_1   1
#define PIN_2   2
#define PIN_3   3
#define PIN_4   4
#define PIN_5   5
#define PIN_6   6
#define PIN_7   7


...

  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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.