Prgramm startet unmotiviert neu

  • 1
  • 2
  • 3
  • Page 3 of 3
Harald_K
 
Avatar
 
Subject:

Re: Prgramm startet unmotiviert neu

 · 
Posted: 07.06.2015 - 17:45  ·  #17
Upps - da hab ich doch vorhin zu schnell gelesen...

es heißt
ASM;
Ldi R16, MCUSR;
STS MidPed2501.MyMcUsr, R16;
ENDASM;


das lädt den Wert von MCUSR (hier also wohl die Registeradresse) ins R16 und speichert das dann nach mymcusr

es müßte heißen:
ASM;
Ld R16, MCUSR;
STS MidPed2501.MyMcUsr, R16;
ENDASM;

das lädt dann R16 mit dem Inhalt von MCUSR und speichert es in Mymcusr ab

daher wohl auch die falschen Bitmuster, das ist die Adresse, nicht der Inhalt.

Adresse 054h = 01010100 .. sieht gut aus .. ändert sich auch nie, da Registeradressen recht fest sind ;)
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Prgramm startet unmotiviert neu

 · 
Posted: 07.06.2015 - 18:09  ·  #18
Hi,

es muss auf jeden Fall heissen:

LDS _ACCA, MCUCSR
oder evtl.
IN _ACCA, MCUCSR

LDI lädt eine Konstante.
LD benötigt einen Pointer als Quelle

rolf

rolf
Avra
Schreiberling
Avatar
Gender:
Location: Belgrade, Serbia
Age: 53
Homepage: rs.linkedin.com/in…
Posts: 653
Registered: 07 / 2002
Subject:

Re: Prgramm startet unmotiviert neu

 · 
Posted: 10.06.2015 - 11:51  ·  #19
Code
  asm;
    ld  R16, MCUSR;
    sts MidPed2501.MyMcUsr, R16;
  endasm;


If I understood well what you want, then using GetWatchdogFlag compiler function would perhaps be more readable and correct 100% without need to find out if "ld", "in" or something else is appropriate?

Quote
4.17.18 GETWATCHDOGFLAG
Function. Returns a byte which is the copy of the "MCUSR" register content after the last reset or PowerOn.
Harald_K
 
Avatar
 
Subject:

Re: Prgramm startet unmotiviert neu

 · 
Posted: 10.06.2015 - 16:57  ·  #20
yeah, but for this you must include the watchdog in the compiler import list,

and then you can not test if anything has activated the watchdog ,what you havent done by the program

(and i think the getwatchdogfag function uses a statement like the lds Rn, MCUSR to read the processor register)

oh, by the way ...

the simple line

b := mcusr ;

will be compiled to

in _acca, mcusr
STS progname.b, _acca


and all without asm, etc ....
  • 1
  • 2
  • 3
  • Page 3 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   75   89 · Page-Gen-Time: 0.016745s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI