MSP430 Programmierproblem :-(

OP #1137799
Lesenswert?
• ▲
▼
Guten Tag Leute ich brauche eure Hilfe denn ich bin am verzweifeln und
weiß nicht weiter.
(Ich Programmiere seit ca.1,5 Wochen bin halt noch ein noob)

Benutze Rowley Crossworks 1.4
MSP430F169
Olimex Evalution Board.

Also das einzige was ich bis gemacht habe und es hat funktioniert war
ein Lauflicht :-) mit 8 LEDS.
und einen Zähler.

Hier das Progr.

#include  <msp430x16x.h>

void pause(unsigned int mswert);

void main(void)
{

{
  WDTCTL = WDTPW + WDTHOLD;   // Stop WDT.
  BCSCTL1 &= ~XT2OFF;         // XT2= HF XTAL.
  P5DIR=0b11111111;


  P5SEL=0b00000000;


  for(;;)
  {


  P5OUT=0b00000001;
  pause(500);
  P5OUT=0b00000010;
  pause(500);
  P5OUT=0b00000100;
  pause(500);
  P5OUT=0b00001000;
  pause(500);
  P5OUT=0b00010000;
  pause(500);
  P5OUT=0b00100000;
  pause(500);
  P5OUT=0b01000000;
  pause(500);
  P5OUT=0b10000000;
  pause(500);
  }
}
}


void pause(unsigned int mswert)
{
unsigned int iZaehler;


    for (iZaehler=0; iZaehler<(26*mswert);iZaehler++)
    {
    }
}
______________________________________________________________


Habe folgendes Problem.
Ich habe versucht als nächstes mit einem Taster eine LED oder
verschiedene LEDS ein und auszuschalten.

Bei diesem Beispiel will ich das alle 8 LEDS AN und AUS geschaltet
werden.

Die LEDS sind alle an P5 (5.0 bis 5.7) angeschlossen.
der Taster an P4 (4.3)

ich habe folgendes Programm geschrieben.

#include  <msp430x16x.h>


void main(void)


{

  WDTCTL = WDTPW + WDTHOLD;   // Stop WDT.
  BCSCTL1 &= ~XT2OFF;         // XT2= HF XTAL.
  P5DIR=0b11111111;
  P5SEL=0b00000000;
  P4DIR=0b00000000;
  P4SEL=0b00000000;


   {

  for(;;)
{
  P5OUT=P4IN;
  }

}
   }


Problem es geht nur die 4LED an und aus!!!!!
Warscheinlich weil der Taster nur an 4.3 angschlossen ist??????
Wenn ich die übrigen Pins 4.0 bis 4.7 berühre gehen die anderen LEDs
auch an.
Was kann ich denn machen????

Danke für eure Hilfe schon im Voraus und wie gesagt bin halt noch n Noob
nehmt n bisschen Rücksicht.

:-D
Moderator (Firma: Titel) Persönliche Seite #1137833
Lesenswert?
• ▲
▼
> Wenn P4IN und 0x8?
Port-Bit Nr 76543210
0x8 = binär 00001000

Ich habe also nur den Port 4 mit 00001000 verundet und wenn der P4.3 
gesetzt ist, bleibt 00001000 übrig. Wenn der Port 4.3 nicht gesetzt 
ist, bleibt 00000000 übrig.

Und die if-Abfrage in C sagt:
wenn der Wert in der if-Klammer ungleich Null ist, dann mache was.

Alles weitere steht im angesprochenen Buch ;-)
Gast #1144427
Lesenswert?
• ▲
▼
Hier noch ein paar wichtige tips zum tasten programmieren.

1) gucke dir im datenblatt was die register PxREN (x steht für den port 
1 oder 2 oder...) machen. Hier ist die erklärung warum die LEDs schon 
bei berührung der PINs angegangen sind.

2) schlagwort "Tastenentprellung" (dafür gibt es ein Code von peter 
hier, was sehr gut ist)

MFG

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.