MSP430 PxIN funzt net

Gast #2993907
Lesenswert?
• ▲
▼
Hallo zusammen.

Ich benutze den MSP430F2013.

Ich hab an einen von den Pins (1.3) einen Bewegungsmelder angeschlossen.
Wird ne Bewegung detektiert, springt der Sensorausgang von 3V auf 0V.

Ich hab nen einfaches Testprogrammle geschrieben:
(BIT1:  LED angeschlossen)

while (1)
{
  if (P1IN ^ BIT2)
    P1OUT |= BIT1;
  else
    P1OUT &= ~BIT1;

}

Da passiert aber gar nix. Led bleibt, ob Detektion oder nicht, immer 
aus.

Danach hab ich mal den SD16 ADC vorgeschalten, mit der Abfrage:
    if (SD16MEM0 < SD16_2V)
      ...
Nun funktioniert alles einwandfrei...


Hier meine Frage:  wieso kann ich nicht einfach über P1IN den 
Sensoroutput abfragen?


Vielen Dank für alle Hilfe!
Gast #2993938
Lesenswert?
• ▲
▼
//set LED
  P1DIR |= LED;

  //configure motion detector
  P1DIR &= ~MOTION_DETECTOR;   //direction
  P1REN &= ~MOTION_DETECTOR;   //disable resistor
  P1OUT &= ~MOTION_DETECTOR;   //set resistor to pulldown
//  P1IE  |= MOTION_DETECTOR;    //enable interrupt
  P1IES |= MOTION_DETECTOR;   //interrupt with high/low rising edge
  P1IFG &= ~MOTION_DETECTOR;   //clear interrupt flag
  __enable_interrupt();        //disable port1 mask


Sollte soweit alles richtig sein. Mit dem SD16 funktionerts ja.
Gast #2997269
Lesenswert?
• ▲
▼
programmierst du mit CCS, dort kannst du ja mal debuggen und dir genau 
deie Register, eben auch die Pins alle ansehen, wenn du dort mim Oszi 3 
V misst sollte auch PxIN am entsprechenden Pin 1 gesetzt sein, ansonsten 
sind deien Einstellungen irgendwo falsch.

PxDIR = 0 passt als Eingang, danach würde ich nen pull down einschalten 
intern, man weiss ja nie ob nicht mal ungebremst 3 V anliegen, das gäb 
dann einen zu hohen Strom, Gefhr dass der Pin abraucht.

Deine Logikverknüpfung ist mir zu komplex :) ich habs lieber so einfach 
wie möglich, würd den auch einfach verunden dann sieht auch jeder beim 
ersten Blick was gemeint ist, und du kannst das in 1 Jahr auch noch 
nachvollziehen...

Das Debuggen sollte aber schon helfen.
Grüße

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.