Forum: Mikrocontroller und Digitale Elektronik Pins ein und ausschalten


von Christian Rott (Gast)


Angehängte Dateien:

Lesenswert?

Ich moechte einzelne Pins des MSP430F169 ansprechen.
Konkret in dem c-code:
wenn an pin 1.1 keine Spannung anliegt (low) soll pin 2.1 Spanung
fuehren (high)
wenn an pin 1.1 Spannung anliegt (high) soll an pin 2.1 keine Spannung
anliegen (low)

Wie realisiere ich das?????
Hauptproblem ist wie ich den einzelnen Pins Werte zuweise, also 0 oder
1.

Gibts da evtl. eine Beschreibung von TI? Hab mir naemlich schon viele
Daten zum MSP430 durchgelesen, werd aber daraus nicht schlau.

Danke

von schoaschi (Gast)


Lesenswert?

ich weis nicht genau wie das bei dir funktioniert, aber bei meinen µC(
und Compiler) funktioniert es mit:

sbit P11 = P1 ^ 1;
sbit P21 = P2 ^ 1;
main()
{
while(1)
{
 if (P11==0)
 {
  P21 = 1;
 }
 else if (P11==1)
 {
  P21 = 0;
 }
}
}

hm..

oda vl haut es auch mit folgendem hin, falls das so gewünscht ist

void main()
while(1)
{
P21 != P11;
}
aber für solche sachen könntest du ja auch einen logikbaustein
(NICHT)hernehmen, wenn das die einzige funktion ist
mfg schoasch

von Chris (Gast)


Lesenswert?

> P21 != P11;

Diese Zeile bewirkt gar nichts. Du meintest wahrscheinlich:
P21 = !P11;

von schoaschi (Gast)


Lesenswert?

aso.. jep.. sorry

von Christian Rott (Gast)


Angehängte Dateien:

Lesenswert?

merci, werd ich gleich mal versuchen.
sbit.... ?????

ich habs jetzt mal so realisiert (neuer c-code).
Nur reagiert pin 2.0 anstatt pin 2.1.

Ich arbeite mit IAR Embedded Workbench (war beim Starterkit dabei).

Nein, ich will nicht nur ein logic Gatter realisieren. Mein Ziel ist es
einen Lichtsensor ueber I2C anzusprechen, die Daten mim MSP430
auszuwerten und dann z.B. eine Led zu dimmen.

Es hapert nur an der Hardwareansprechung (Pins) und daher will ich
erstmal einfache Programme schreiben um das zu verstehen.

von Christian Rott (Gast)


Angehängte Dateien:

Lesenswert?

Aehmmmmm ja, nachdem man nicht 2 Files anhaengen kann hier mal das
Headerfile in nem neuen Beitrag. Vielleicht hilfts.

von Christian Rott (Gast)


Lesenswert?

@schoaschi:
Dein code hat sich erledigt wollte ihn grad compilen und der gibt mir
ein haufen Fehler aus.
"sbit" is undefined
"P1" is undefined
dasselbe auch mit pin 2
usw....

von Christian Rott (Gast)


Lesenswert?

Bin mitlerweile soweit, dass ich das 0x01 aus dem code:
if ((P1IN & BIT1) == 0)            // Abfrage Pin 1.1 = 0
          (P2OUT = 0x01);               // setze Pin 2.1 auf 1 (high)
durch BIT0 ersetxen kann.
BIT1 spricht folglich Pin 2.1 an.
BIT2 Pin 2.2 usw...
endlich kann ich die pins ansprechen probieren hilft halt doch ab und
zu.
Jetzt brauch ich aber nen Taktgeber, welchen ich dann ueber einen Pin
ausgebe, der mir wahlweise 20khZ oder 40kHz Takt vorgibt.
Geht das irgendwie ueber nen internen Taktgeber vom MSP430????

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
Noch kein Account? Hier anmelden.