MSP430 Programmierproblem :-(

#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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren