Forum: Mikrocontroller und Digitale Elektronik Was mach der Reset Button


von Johannes S. (senzi)


Lesenswert?

Hi,
ich verwende den Micro controller MSP430G2553 und möchte die Leds am 
Launch Pad von Texas Instruments(Grün und Rot) ansteuern.

Ich check aber folgendes nicht. Bei folgendem Code kann ich mit 
betätigen der Reset Taste zwischen beide Led blinken geleichzeitig und 
Led blinken abwechseld hin und her schalten. Das geht nur wenn ich mich 
nicht im Debug modus befinde.
1
#include <msp430.h>
2
3
int main(void)
4
{
5
  WDTCTL = WDTPW + WDTHOLD;  // Stop watchdog timer
6
  P1DIR = P1DIR | 0x01;    // Set P1.0 to output direction
7
  P1DIR = P1DIR | 0x40;    // Set P1.6 to output direction
8
9
  for(;;)
10
  {
11
    volatile unsigned int i;// volatile to prevent optimization
12
13
    P1OUT = P1OUT ^ 0x01;  // Toggle P1.0 using exclusive-OR
14
15
    i = 10000000;  // SW Delay
16
    do i--;
17
    while(i != 0);        
18
19
    P1OUT = P1OUT ^ 0x40;  // Toggle P1.6 using exclusive-OR
20
21
  }
22
  
23
  return 0;

Wenn ich jetzt  die zwei P1OUT Befehle untereinander schreibe kann ich 
nicht mehr umschalten.
1
#include <msp430.h>
2
3
int main(void)
4
{
5
  WDTCTL = WDTPW + WDTHOLD;  // Stop watchdog timer
6
  P1DIR = P1DIR | 0x01;    // Set P1.0 to output direction
7
  P1DIR = P1DIR | 0x40;    // Set P1.6 to output direction
8
9
  for(;;)
10
  {
11
    volatile unsigned int i;// volatile to prevent optimization
12
13
    P1OUT = P1OUT ^ 0x01;  // Toggle P1.0 using exclusive-OR
14
    P1OUT = P1OUT ^ 0x40;  // Toggle P1.6 using exclusive-OR
15
16
    i = 10000000;  // SW Delay
17
    do i--;
18
    while(i != 0);        
19
20
    
21
22
  }
23
  
24
  return 0;

Meine Frage ist nun was passiert wenn ich die Reset taste im edit mode 
betätige wenn ich den ersten Befehle oberhalb der Schleife einfüge und 
den zweiten unterhalb einfüge. Nur mit Konstellation ist möglich mit 
reset Button zwischen den gleichzeitig und abwechseln blinken 
umzuschalten.

was mir noch nicht klar ist. wenn ich jetzt im Gleichzeitig mode bin und 
den Befehl unter der Schleife nach oben über die schleife aber unter 
halb des ersten P1OUT befehls kopiere dann das Programm übertrage bin 
ich im abwechselden mode Ich kann nun nicht mehr mit der Reset taste im 
Edit mode auf gleichzeitigen mode umschalten.

Das selbe funktioniert auch umgekehrt. d.h im Blinken Mode rauf kopieren 
und dann auf micro controller spielen und dann befindet man sich im 
gleichzeitigen mode und kann auch nicht mehr mit der reset taste 
umschalten.

Vielen Dank
Lg senzi



Vielen dank
Senzi

: Bearbeitet durch User
von Marian (phiarc) Benutzerseite


Lesenswert?

Johannes Senzenberger schrieb:
> Das geht nur wenn ich mich nicht im
> Debug modus befinde.

Weil im Debug modus der Reset-Knopf seinem Namen wahrscheinlich gerecht 
wird und einen Hardware-Reset auslöst

von Johannes S. (senzi)


Lesenswert?

HI,
ok aber im  gerade im Debug mode ändert sich nichts obwohl der da die 
Hardware rücksetzt wird und im Edit mode ändert sich etwas.
Ich verstehe einfach nicht was der Unterschied ist wenn ich den zweiten 
Befehle unter die For schleif setzte.

lg

von Kein Name (Gast)


Lesenswert?

>beide Led blinken geleichzeitig und Led blinken abwechseld

Was beim Start in P1out steht, könnte reiner Zufall sein. Ist zumindest 
bei den mir bekannten Mikrocontrollern zufällig. Vielleicht 
initialisiert der Debugger den Port. Vielleicht ist das auch nur Zufall.

von Kein Name (Gast)


Lesenswert?

... errinnere mich noch so dunkel an ein Lauflicht-Beispiel. Nur ein 
paar Zeilen, trotzdem seltsame Effekte.

Da stellte sich heraus; der Debugger löschte das Carry-Flag. Ohne 
Debugger war es beim Programmstart zufällig.

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.