MSP430FR5594 Launchpad Frage

OP #5562957
Lesenswert?

Hallo Zusammen,

ich arbeite seit kurzem mit einem MSP430FR5994 Launchpad Rev.1.2,
nun zu meinem Problem. Ich möchte eine LED1 P1.0 über den Taster S1 P.6 
auf Tastendruck leuchten lassen.
Ich habe es als Neuling zwar geschafft dies zu programmieren aber beim 
einlesen des Ports ist mir aufgefallen, dass ich das BIT6 benutzen muss.
Ich war der Meinung P5.6 entspricht BIT5.
Kann mir jemand das erläutern?

Hier mein Quelltext:
1
#include <msp430.h>
2
#include<msp430FR5994.h>
3

4
/**
5
 * main.c
6
 */
7
void main(void)
8
{
9
  WDTCTL = WDTPW + WDTHOLD;     // Stoppe watchdog timer (sonst startet Programm nicht)
10
  PM5CTL0 &= ~LOCKLPM5;         // Disable the GPIO power-on default high-impedance mode
11

12
  P1DIR = BIT0;         // P1.0 LED Ausgang
13
  P5DIR = BIT6;         // P5.6 S1 Taster Eingang
14

15

16
while(1)
17
{
18
    if(!(P5IN & BIT6)) {        // Wenn Taster auf ”Low”
19
          P1OUT  =  BIT0;      // Setze den Ausgang (LED an)
20
    }
21
    else{
22
    P1OUT=P1OUT&~BIT0;
23
    }
24
    }
25
}
#5562971
Lesenswert?

Rene F. schrieb:
> Ich war der Meinung P5.6 entspricht BIT5.

Hallo Rene, bitte gewöhne Dir an mit den "richtigen" Bezeichnungen zu 
arbeiten, sprich Bit-Null, ... Bit-15.

Ich bekomme immer eine Krise wenn andere Jungs von Oberwellen sprechen. 
Die sollten dann auch von Harmonischen reden - n = Null entspr. DC, n = 
1 die Grundfrequenz, ...

Sie meinen dann mit "erste Oberwelle" einfach nur n = 2.

Beispiel klar?

Gruß

Bernd
Persönliche Seite #5562997
Lesenswert?

Rene F. schrieb:
> Ich war der Meinung P5.6 entspricht BIT5.

Da es auch P5.0 gibt (wie Du mit einem anderen Port, nämlich P1 sogar in 
Deinem Beispielcode siehst), sollte sich die Frage komplett von selbst 
erklären.
1
  P1DIR = BIT0;         // P1.0 LED Ausgang
2
  P5DIR = BIT6;         // P5.6 S1 Taster Eingang

Na, was passiert hier in der erstern Zeile?

Eben.



Bernd B. schrieb:
> bitte gewöhne Dir an mit den "richtigen" Bezeichnungen zu arbeiten,
> sprich Bit-Null, ... Bit-15.

Wer legt das fest, daß das die "richtigen" Bezeichnungen sein sollen? 
Hast Du Dir dazu eine Norm ausgesucht?
#5563008
Lesenswert?

Rufus Τ. F. schrieb:
> Wer legt das fest, daß das die "richtigen" Bezeichnungen sein sollen?
> Hast Du Dir dazu eine Norm ausgesucht?

Hallo Rufus, gut dass Du darauf hinweist! Es geht im RICHTIGEN Leben 
nicht immer nur um richtig und falsch.

Aus Mathe weiß ich noch, dass das Vorhandensein eines Teiles die EINS 
ist. Ist dieses Teil doppelt vorhanden, hat man die ZWEI. Nimmt man bei 
einem Teil das Teil wieder weg, hat man KEINS oder NULL. Also wäre nach 
dieser Logik die kleinste Nummerierung die NULL, also die erste Nennung.

... ach bleiben wir doch bei der Gewohnheit ... oder bei Zwei hoch Null, 
der Eins. Genau, die Bits werden nach der Potenz nummeriert.

Gruß

Bernd
OP #5563012
Lesenswert?

Rufus Τ. F. schrieb:
> Rene F. schrieb:
>> Ich war der Meinung P5.6 entspricht BIT5.
>
> Da es auch P5.0 gibt (wie Du mit einem anderen Port, nämlich P1 sogar in
> Deinem Beispielcode siehst), sollte sich die Frage komplett von selbst
> erklären.
>
>
1
>   P1DIR = BIT0;         // P1.0 LED Ausgang
2
>   P5DIR = BIT6;         // P5.6 S1 Taster Eingang
3
>
>
> Na, was passiert hier in der erstern Zeile?
>
Hallo Rufus,

ich danke Dir, manchmal sieht man den Wald vor lauter Bäumen nicht!

Vielen Dank!
#5563339
Lesenswert?

Hallo Rufus,

ich weiß nicht, was interessiert mich mein Geschwätz von heute morgen?

Schönes Wochenende!

Bernd

PS: Mir ist zwischenzeitlich eingefallen, dass in den Deklarationen zum 
IAR Assembler (wahrscheinlich auch beim C-Compiler) Inkonsistenzen 
vorhanden sind. Die zählen manchmal auch um EINS geschoben. Vielleicht 
waren da mehrere Dokumentatoren am Zug. Seit mir das aufgefallen ist, 
versuche ich immer sorgfältig die Zählweise zu beachten.

... das nur, falls jemand bis hier hin liest, aber dann muss er auch 
ganz tief in die Deklarations- / Defintions-Dateien reinlesen B.
Beitrag #5564498 wurde von einem Moderator gelöscht.
Gast #5580469
Lesenswert?

sollte der Code nicht so geändert werden:

Rene F. schrieb:
> #include <msp430.h>
> #include<msp430FR5994.h> // <--- Remove
// Der chip include ist im CCS8 Schon definiert.
>
> /**
>  * main.c
>  */
> void main(void)
> {
>   WDTCTL = WDTPW + WDTHOLD;     // Stoppe watchdog timer (sonst startet
> Programm nicht)
>   PM5CTL0 &= ~LOCKLPM5;         // Disable the GPIO power-on default
> high-impedance mode
>
>   P1DIR = BIT0;         // P1.0 LED Ausgang
>   P5DIR = BIT6;         // P5.6 S1 Taster Eingang // ist falsch
// Der P5.6 Pin ist falsch konfiguriert und müßte als Eingang
// so konfiguriert werden:

    P5DIR &= ~BIT6 // setze Bit 6 als Eingang(0=Input, 1=Output
    P5OUT |= BIT6  // 1=Pull-up, 0=Pull-down

>
> while(1)
> {
>     if(!(P5IN & BIT6)) {        // Wenn Taster auf ”Low”
>           P1OUT  =  BIT0;      // Setze den Ausgang (LED an)
>     }
>     else{
>     P1OUT=P1OUT&~BIT0;
>     }
>     }
> }

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