Hi Leute! ich habe folgendes Problem: ich habe ein Programm-Code für den MSP430 G2231 geschrieben aber das Board ist sehr empfindlich allein beim Berühren des Boards schalten die PINs schon die LEDs ein,obwohl ich die Low-Power-Modes alle ausgeschaltet habe. Kann man was dagegen tun ? Habt ihr eine Ahnung wie man einen Pull-Up Widerstand softwaremässig mit dem Controller machen könnte. Danke im Voraus ! Peter Hans.
Launchpad? Denk an die Jumper auf dem Board! Widerstände: P1REN, abhängig von P1OUT
Hi Jens! Danke für deine schnelle Antwort erstmal. Tatsächlich das ist der Launchpad. Was hast du mit dem Jumper gemeint ? Was sollen wir genau machen ? Danke ! Peter Hans
Hi Peter, wenn ich die Firma sehe, werde ich schon wieder ganz kribbelig ;) Du bist hoffentlich Maschinenbauer. Abgesehen, das der ganze Programmaufbau ziemlicher Murks ist. Man setzt einmal alle Grundeinstellungen (WDT, Ports, timer,etc.). Dann hat man meist eine Schleife, in der etwas dauernd passiert. Du dödelst dauernd in Main auf diesen Einstellungen. Dann sind nicht benutzte Eingänge tödlich. Unbenutzte Ports sollen Ausgänge sein (TI). Du kennst die TI-Beispiele und K&R und http://processors.wiki.ti.com/index.php/Getting_Started_with_the_MSP430_LaunchPad_Workshop ?? Gruss Dietmar
Peter Hans schrieb: > obwohl ich die Low-Power-Modes alle ausgeschaltet habe Hat ja nichts damit zu tun. Alle CMOS Eingänge sind so empfindlich! Peter Hans schrieb: > Habt ihr eine Ahnung wie man einen Pull-Up Widerstand softwaremässig mit > dem Controller machen könnte.
1 | P1REN |= (BITXY); // Schaltet Widerstand ein |
2 | P1OUT |= (BITXY); // Schaltet Pull-Up ein - alternativ &= ~(BITXY) fuer Pull-Down |
Hi Dietmar, Danke für deine Antwort aber das ist so ein Beispielprogramm um mich vertraut mit dem Controller zu machen. Was die Firma angeht sagen wir halt ich bin Student und brauche deine Hilfe. Allerdings konkretes was kann ich machen ich habe versuch alle unbenutzte Ports als Ausgänge zu definieren mit P1DIR |= 0xFF aber es bringt halt nichts. Danke ! Peter Hans
Hi Leute ! Offnung ist da Gott sei Dank! ich habe in main meine Ausgänge mit (PORT 1.0 LED1) P1REN |=0x01; und (PORT 1.6 LED2) P1REN |=0x40; gesetzt wie du mir es empfolen hast Dennis und es funktioniert das Board ist nicht mehr so empfindlich zwar aber die beiden LED leuchten aber nur gering. Kann ich noch was dagegen tun damit sie richtig leuchten ??? Danke alle schon für Ihre schnellen Antworte. Peter Hans.
Ich glaube, du musst nochmal genau schreiben, was du überhaupt willst. Ich dachte, sie sollen nicht mehr leuchten, wenn du sie berührst...jetzt: Peter Hans schrieb: > Kann ich noch was dagegen tun damit sie richtig leuchten ???
Du solltest natürlich, wenn du auf Interrupts an den Ports reagieren willst, noch die Register P1IES setzen, je nachdem, ob du auf die fallende oder steigende Flanke reagieren willst. Ich weiß grad nicht auswendig, was per default gesetzt ist.
Die Pullups (oder Pulldowns) musst du an den Eingängen aktivieren nicht an den Ausgängen. An Eingängen sorgen sie für einen definierten Pegel und verhindern so, dass Pegelwechsel erkannt und damit Interrupts ausgelöst werden. Wenn du sie an den Ausgängen aktivierst kann nur noch ein kleiner Strom fließen - die LEDs leuchten nur noch schwach.
Klar geht das, nur machen sollte man es nicht. Peter Hans hat's gemacht und das Ergebnis gesehen.
Hi ! Was wäre den Befehl um es zu aktivieren an den Eingängen mit P1IES läuft es trotzdem nicht die LEDs blinken aber als ob nur wenig strom fließen würde. wo soll ich P1REN schreiben. Danke! Peter Hans
Peter Hans schrieb: > wo soll ich P1REN schreiben. An deine Eingänge. Zumindest an die, die du als Eingänge für Abfragen benutzt. Die unbenutzten entweder als Ausgang schalten, oder als Eingang lassen mit Pull-Up/Down. Ohne geht es auch, aber dein Stromverbauch kann dadurch ansteigen.
also ich habe im Datenblatt gelesen das über die Pull Up Pull Down Widerstände ~20 mA fließen können. das habe ich auch ausprobiert. an einen Ausgang eine LED mit Vorwiderstand, wobei der Vorwiderstand so ausgelegt war das aus dem Ausgang 20 mA in die LED fließen, angeschlossen. Dann habe ich den Pull Up Widerstand aktiviert der Pin auf Ausgang gesetzt und den Ausgang auf High. Und siehe da die LED leuchtete. Mit einem Multimeter den Strom gemessen und es flossen wirklich 20 mA. dies habe ich mit mehreren Pins gemacht und das ganze über 24h laufen lassen. dem Controller hat es nichts geschadet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.