Anfängerproblem LED Lauflicht

OP #3210757
Lesenswert?
• ▲
▼
Hallo miteinander,
ich habe an einem MSP430F2272 8 LED´s angeschlossen. An Port 1.
So, nun habe ich hier ein Minimalbeispiel:
1
int main(void)
2
{
3
  WDTCTL = WDTPW + WDTHOLD;    
4
  P1DIR = 0xFF;       
5
  P1OUT = 0xBF;
6
}

Ich setze alle Ports auf Ausgang.
Danach, so dachte ich, müsssten alle leds leuchten, bis auf die zweite 
von links, da 0xBF in Binärzahlen ausgedrückt folgendes ergibt: 10111111
P1.1 sollte doch 0 sein, also nicht leuchten?
Allerdings ist es nun so, dass genau nur diese LED leuchtet.
Kann mir jemand weiterhelfen?
Dankeschön schonmal.

Valerie
#3210766
Lesenswert?
• ▲
▼
Valerie D. schrieb:

> Danach, so dachte ich, müsssten alle leds leuchten,

Das hängt davon ab, wie deine LED angeschlossen sind.

> Allerdings ist es nun so, dass genau nur diese LED leuchtet.

Scheinbar sind deine LED so angeschlossen, wie wir das hier (mehr aus 
hostorischen Gründen) auch machen.

An einem Ende der LED ist sie an Vcc (also an die Versorgungsspannung) 
angeschlossen und das andere Ende führt zum Pin.
D.h. die LED leuchtet, wenn der Pin auf 0 ist.


> P1.1 sollte doch 0 sein, also nicht leuchten?
Hüte dich davor, mit 0 und 1 irgendwelche physikalischen 'Gegebenheiten' 
zu assozieren. Das hängt einzig und alleine davon ab, wie diese 
Zusatzhardware angeschlossen ist. Beides ist möglich: Aktion bei 1 und 
Aktion bei 0.
Gast #3210885
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:

Hallo Herr Buchegger,
>
> Das hängt davon ab, wie deine LED angeschlossen sind.
>

Ok.

>
> Scheinbar sind deine LED so angeschlossen, wie wir das hier (mehr aus
> hostorischen Gründen) auch machen.
>
> An einem Ende der LED ist sie an Vcc (also an die Versorgungsspannung)
> angeschlossen und das andere Ende führt zum Pin.
> D.h. die LED leuchtet, wenn der Pin auf 0 ist.

Genau das war der Fehler! ;-)

> Hüte dich davor, mit 0 und 1 irgendwelche physikalischen 'Gegebenheiten'
> zu assozieren. Das hängt einzig und alleine davon ab, wie diese
> Zusatzhardware angeschlossen ist. Beides ist möglich: Aktion bei 1 und
> Aktion bei 0.

Ok super. Das werde ich in Zukunft im Hinterkopf behalten.
Danke vielmals für die super schnelle, gute und zielführende Antwort.

Valerie
OP #3212777
Lesenswert?
• ▲
▼
Dietrich L. schrieb:
> Nebenbei: hier fehlt noch die Endlosschleife. Auch wenn es so
> funktioniert: das kann Zufall sein.

Ja, das war mir bewusst. Trotzdem danke für Ihre Hilfe. Ich poste hier 
vollständigkeitshalber meinen kompletten Code:
1
#include  <msp430x22x2.h>
2

3

4
void delay(unsigned int i);      
5

6
int main(void)
7
{
8
  unsigned int i;
9
  unsigned int pattern;
10

11
  WDTCTL = WDTPW + WDTHOLD;    
12

13
  P1DIR = 0xFF;          
14

15
  pattern = 0x03;         
16
  while(1)          
17
  {
18

19
    P1OUT=~0x81;
20
    delay(65000);
21
    P1OUT=~0x42;
22
    delay(65000);
23
    P1OUT=~0x24;
24
    delay(65000);
25
    P1OUT=~0x18;
26
    delay(65000);  
27
    P1OUT=~0x24;
28
    delay(65000);
29
    P1OUT=~0x42;
30
    delay(65000);
31
    P1OUT=~0x81;
32
    delay(65000);
33
    delay(65000);
34

35
    for (i=0; i<6; i++)
36
      {
37
      pattern <<=1;
38
      P1OUT = ~pattern;    
39
      delay(40000);      
40
      }
41
    for (i=0; i<6; i++)
42
      {
43
      pattern >>=1;
44
      P1OUT = ~pattern;    
45
      delay(40000);      
46
      }
47
  }
48
}
49

50
void delay (unsigned int i)
51
{
52
  while(i > 0)
53
    i--;
54
}

Valerie

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.