MSP430G2231 Launchpad 7-Seg flackert

OP #2421417
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte das Programmieren erlernen und setze mich deshalb mit dem 
Launchpad und dem MSP430G2231 auseinadner. Als Übung will ich eine 
7-Segment Anzeige programieren und wollte deshalb die demensprechende 
Hardware dazu erstellen, die ich einfach auf das Launchpad aufklemmen 
kann.

Fakten:
Die Ansteuerung, der 7-Segment Anzeige, erfolgt durch eine Treibestufe 
mit MOSFET's welche am Gate jeweils von einem Pin angesteurt werden.
Ich benutze eine 7-Segment Anzeige welche eine gemeinsame Anode hat, 
welche ich durch VCC des µC versorge.

So weit so gut nun Folgendes Problem:
Ich habe das alles aufgebaut und ein ganz einfaches Programm zum Testen 
geschrieben.
1
#include <msp430g2231.h>
2

3
void main(void)
4
{
5
   WDTCTL = WDTPW + WDTHOLD;    // Watchdog Timer anhalten
6

7
  P1DIR = 0xFF;        //Alle Pins als Output
8
  P1OUT = 0;        //schalte alle LEDs aus
9

10
  BCSCTL3 |= LFXT1S_2;      // VLOCLK 
11
  IFG1 &= ~OFIFG;        // loeschen des Oszillator Fehler Flag
12
  BCSCTL2 |= SELM_3 + DIVM_3;    // MCLK ist VLO geteilt durch 8 = ca. 1500 Hz
13
  
14
  while (1)
15
  {
16
    P1OUT = BIT0;
17
    P1OUT = BIT1;
18
    P1OUT = BIT2;
19
    P1OUT = BIT3;
20
    P1OUT = BIT4;
21
    P1OUT = BIT5;
22
  P1OUT = BIT6;
23
    P1OUT = BIT7;
24
    }
25
}

Als ich nun alle 8 Segmente (mit Punkte-Segment) zusammen angesteurt 
habe, haben alle Segmente "geflackert". Und folgendes Oszilogramm 
ergeben sich als ich an einem Pin gemessen habe.
Sieht fast aus wie ein PWM???

Meine versuchten Fehlerbehebungen:
Ich habe das ganze zuerste ohne Treiber, mit einer direkten Ansteuerung 
(mit Vorwiderstand), versucht. Da habe ich vermutet, dass der µC nicht 
genug Strom liefern kann und deshalb zusammenbricht. Als Folge dessen 
haben ich es ein zweites mal mit Treiber aufgebaut doch das Problem war 
immer noch das gleiche.
Ich habe daraufhin vermutet, dass das Stromversorgungs IC des Launchpads 
diesen Strom nicht mit macht und habe die Treiber durch eine externe 
Stromversorgung versorgt...doch leider hat dies zu keiner Verbesserung 
geführt.

Nun weiß ich leider nicht mehr weiter, habe aber die Vermutung, dass ich 
irgendwas beim Programmieren vergesse habe.

Ich hoffe es kann mir jemand helfen.
Danke schonmal für die Antworten :-)
Angehängte Dateien:
#2421425
Lesenswert?
• ▲
▼
Jonas Enderlin schrieb:

> Als ich nun alle 8 Segmente (mit Punkte-Segment) zusammen angesteurt
> habe, haben alle Segmente "geflackert".

Was meinst du mit 'geflackert'. Hast du das optisch gesehen?

> Und folgendes Oszilogramm
> ergeben sich als ich an einem Pin gemessen habe.

Ja, das würde ich in etwa als Oszillogramm an einem Pin bei diesem 
Programm
1
  while (1)
2
  {
3
    P1OUT = BIT0;
4
    P1OUT = BIT1;
5
    P1OUT = BIT2;
6
    P1OUT = BIT3;
7
    P1OUT = BIT4;
8
    P1OUT = BIT5;
9
  P1OUT = BIT6;
10
    P1OUT = BIT7;
11
    }

erwarten. Mit jeder neuen Zuweisung wird ein anderes Bit auf 1 gesetzt, 
so dass im schnellen Wechsel alle 8 Bits reihum einmal drann kommen. 
Betrachtet man 1 Bit, so ist es nur 1/8 der Zeit auf 1 und sonst 0. 
Deckt sich ganz gut mit deinem Oszillogram.


Ich sehe jetzt nichts Ungewöhliches. Das was du beobachtest, ist IMHO 
das was du programmiert hast.

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.