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
voidmain(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
MSPs zählen die 0 mit, deshalb:
P5.0 = BIT0
P5.1 = BIT1
...
P5.5 = BIT5
Im User Guide sind 2 Buttons drin, einer an P5.5 und einer P5.6
Welchen davon willst du den verwenden?
Ralph S. schrieb:> hl. Stephanus schrieb:>> MSPs zählen die 0 mit, deshalb:>> ... das machen doch alle anderen auch, oder ?
Vermutlich ja, aber da ich nicht alle kenne wäre dies eine Annahme.
...Mir wurde mal gesagt, ich darf keine Annahmen machen.
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
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?
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
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!
Bernd B. schrieb:> Aus Mathe weiß ich noch,
Ah, Du zielst nur auf den Konflikt Pascal-Programmierer/C-Programmierer.
Erstere fangen bei 1 an zu zählen, letztere bei 0.
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.