Forum: Mikrocontroller und Digitale Elektronik MSP430 Programmierproblem :-(


von John Fistikis (Gast)


Lesenswert?

Guten Tag leudz beschäftige mich seit n Paar Wochen mit dem MSP430.
habe folgendes Problem ich habe an den OUTPOUT PORTS 8 Leds 
angeschlossen habe also 0...255 möglichkeiten die Anzusteuer.

Ich will nun mit meinem Taster den ich an Pin4.3 angeschlossen habe 
immer einen anderen Zustand abrufen wenn ich meine Taste drücke.

zB
Taster 1 drücken Zustand 0b00000001 (Erste Led an)
Taster 2mal drücken Zustand 0b00000010 (2 Led an )

usw.....

Kriege es aber irgendwie nicht hin........

Mein Prog schat so aus

Bei einmal drücken der Taste laufen alle Zustände
wie kann ich nun das so machen wie vorhin beschrieben.

Danke für die Hilfe.


#include  <msp430x16x.h>

void pause(unsigned int mswert);
unsigned char cAusgabe;

void main(void)
{


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


  for(;;)
  {
  if ((P4IN&0b00001000)==0)
    {
    for (cAusgabe=0;cAusgabe<255;cAusgabe++)
      {
      P5OUT=cAusgabe;
      pause(75);
      }
    }
  else P5OUT =0b00000000;
  }
}
void pause (unsigned int mswert)
{
  unsigned int iZaehler;

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

von pcb (Gast)


Lesenswert?

Mit wieviel MHz läuft dein MSP430 nochmal genau?
1.Ich denke deine Pause(); Funktion ist net OK.
Ich kann mir nicht vorstellen, dass dein MSP 26 leere 
Forschleifendurchgänge in einer ms erledigt.

2. Die gesamte Forschleife wird mit Sicherheit wegoptimiert sein.
Die gibt es also überhaupt nicht.

3. Versuch mal extrem kurz die Taste zu betätigen. Was Siehst du dann?

von Tobias Korrmann (Gast)


Lesenswert?

Andere Vorschlag.
Kannst du den Taster nicht an den Port 1 oder 2 anschliesen.
Dann könnstest du nählich einen Interrupt nutzen um den Zusand am Port 8 
hochzuzählen.
und im gleichen Zug würde ich den Taster entprellen (Hardware nicht 
Software)

von Tobias Korrmann (Gast)


Lesenswert?

Ach nochwas ich würde mir an deiner Stelle ganz schnell abgewöhnen die 
Konfigurationswerte in Binärer Form dort hinzu schreiben.
TI hat dort ganz gute define Tabellen dafür. Da sieht doch niemand 
durch.
:-)

von Jörg S. (joerg-s)


Lesenswert?

>TI hat dort ganz gute define Tabellen dafür. Da sieht doch niemand
>durch.
Na ja, bei der Port I/Os ist binär gar nicht mal so ne schlechte Idee. 
Ich nutze dafür allerdings auch die "BIT0-7" defines

von Tobias Korrmann (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe angefangen mir für den MSP Bitfelder anzulegen wie es für Die 
DSPs von TI schon lange der Fall ist.
Bin allerdings noch nicht mit fertig

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.