Forum: Mikrocontroller und Digitale Elektronik MSP430G2553 Taster-Problem


von FelixB (Gast)


Lesenswert?

Hallo Leute!
Ich arbeite noch nicht lang mit Microcontrollern und verzweifle an 
einer, wahrscheinlich ziemlichen simplen Sache...

Zuerst zum Controller; Es ist ein MSP430G2553 Launchpad von TI, ohne 
weitere Prepheriegeräte, quasi im Auslieferungszustand.

Nun will gern ein Assembler-Programm drauf laufen lassen, das auf 
Tastendruck (P1.3) von der einen LED(P1.0) zu anderen LED(P1.6) wechseln 
lässt.

Mein Problem dabei: Der Controller und auch die Status-Ansicht im 
Code-Composer zeigen mir nicht an das ich Taste drücke. Der Status 
bleibt immer auf "0".

Hier mal mein Code:
1
;--------------------------------------------------------------------------------------
2
; Module/Filename: Lichtlaufleiste
3
; Hw-System: MSP430G2553
4
; IDE: CodeComposer Studio, Rel. 4.2.4.00033
5
; Purpose: Lichtlauf LED
6
; Dates: May, 9. 2013
7
;--------------------------------------------------------------------------------------
8
9
; start adresse der Anwendung
10
  .global main
11
  
12
; einbinden C-headerfile
13
  .cdecls "msp430g2553.h"
14
  
15
; constant definition - if requested
16
  .sect .const
17
  
18
; variable definitions - if requested
19
  ;.bss
20
  
21
; application program
22
  .text
23
main:
24
  
25
; init stackpointer
26
27
  
28
  mov.w   #0280h,SP               ; initialize stack pointer
29
    mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; stop watchdog timer
30
  
31
; init port hardware
32
  bic.b #0xFF, &P1SEL    ;I/O-Mode for P1.x
33
  bic.b #0xFF, &P1DIR    ;Input_Mode for P1.x (who knows what the previous-state is?!)
34
  bic.b #0xFF, &P1OUT    ;set all LED off
35
  bis.b #0x01, &P1OUT    ;set LED 1 on
36
  bis.b #01000001b, &P1DIR ;Output-Mode for P1.0 and P1.6
37
38
  
39
bigloop:
40
41
;manual
42
manual_loop1:
43
  bit.b #00001000b, &P1IN    ;test if momentary switch is set (P1.3)
44
  JC manual_loop1        ;jump back to manual_loop1if momentary switch is not set
45
46
  call #AusgabeSchieben
47
48
manual_loop2:  
49
  bit.b #0x08, &P1IN    ;test if momentary switch is set (P1.3)
50
  JC manual_loop2      ;jump back to manual_loop2 if momentary switch is set
51
  JNC manual_loop1    ;jump to manual_loop1 if momentary switch is not set
52
  
53
  
54
;************ AusgabeSchieben ********************
55
AusgabeSchieben:
56
  clrc
57
  bit.b #0x01, &P1OUT    ;test if MSB is 1 or 0
58
  JC setled2on
59
  bic.b #0xFF, &P1OUT    ;set all LED's off
60
  bis.b #0x01, &P1OUT    ;set LED 1 on
61
  ret
62
setled2on:
63
  bic.b #0xFF, &P1OUT    ;set all LED's off
64
  bis.b #0x40, &P1OUT    ;set LED 2 on
65
  ret
66
  .end

An sich ja ne simple Sache, wie gesagt, nur dieser Taster(P1.3) machst 
halt nicht.

Muss ich evtl. irgendwelcher Jumper umstecken ? Sind alle noch drauf, 
wie gesagt, Auslieferungszustand (bis auf das Programm)

von Coder (Gast)


Lesenswert?

Pull-Ups?

von FelixB (Gast)


Lesenswert?

ok, Die stelle ich mit dem Register &P1REN ein, richitg ?
Default sind die auf 0, hab ihn jetzt mal auf 1 gestelt, also
bis.b 0x08, &P1REN
tut sich aber trozdem nix :(

was machen die denn genau für mich ?

von Coder (Gast)


Lesenswert?

Ich hab' das Launchpad auch, ist schon ein weilchen her. Mit dem Pull-Up 
sieht der Taster VCC, durch das druecken der Taste wird das Potential 
auf GND gezogen. Du musst den Pin von Taster als Eingang und 
konfigurieren und den Pull-Up aktivieren.  Ich habe allerdings nicht den 
Schaltplan zur Hand.

von FelixB (Gast)


Lesenswert?

Danke danke danke!!!!!
jetzt funktioniert es :)

von Coder (Gast)


Lesenswert?

Ja, als naechstes dann wohl Taster entprellen...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Coder schrieb:
> Du musst den Pin von Taster als Eingang und
> konfigurieren und den Pull-Up aktivieren.

Der Schaltplan in der Doku hat ja auch einen Fehler, dort sind externe 
Pullups angegeben. Bei mir war R34 aber nicht bestückt.

von Salvador (Gast)


Lesenswert?

>Bei mir war R34 aber nicht bestückt.

Auch bei keinem meiner Launchpads Rev.1.5 ist R34 bestückt. Hängt 
wahrscheinlich mit dem historischen niedrigen Preis von unter 5 Euro 
zusammen. Jetzt, wo der Preis für ein Launchpad mehr als verdoppelt 
wurde, kann man auf R34 auf der Platine hoffen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Salvador schrieb:
> Jetzt, wo der Preis für ein Launchpad mehr als verdoppelt
> wurde,

Tatsächlich. Statt 4.30 USD kostet es jetzt 9.99 USD.

Allerdings ist das immer noch günstiger als der darauf verbaute 'F1611, 
der selbst in Tausenderstückzahlen über 9 USD kostet.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Tatsächlich. Statt 4.30 USD kostet es jetzt 9.99 USD.

Sorry wegen off-topic, scnr

Die Launchpads sind bei vielen Versendern ausverkauft.

Verfügbare Menge bei hbe-shop.de: 6111
5,64 € inkl. 19% USt., zzgl. Versand

Jetzt hamstern. ;-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Rufus Τ. Firefly schrieb:
>> Tatsächlich. Statt 4.30 USD kostet es jetzt 9.99 USD.

Das ist der Preis von TI höchstselbst, vorhin nachgesehen bei 
estore.ti.com

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das ist der Preis von TI höchstselbst, …
Danke, ich weiss. Der neue Preis ist nur noch nicht bei allen Händlern 
ankommen. Daher mein blöder Kommentar: "Jetzt hamstern, bevor die das 
auch merken." ;-)

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
Noch kein Account? Hier anmelden.