MSP430G2553 Taster-Problem

Gast #3162836
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)
Gast #3162882
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 ?
Gast #3162890
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.
Gast #3164516
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren