ATMega128 Unterprogrammrücksprung

Gast #227111
Lesenswert?

Hallo,

schreibe zur Zeit ein Programm für ein ATMega128. Habe früher nur
ATMega8 und 16 benutzt. Kann mir jemanden sagen ob ich in diesem kürzen
Code irgendetwas falsch mache. Im Simulator läuft alles wunderbar, aber
wenn ich das Programm auf dem uC programmiere, kommt das Programm nie
zu der Zeile nach "rcall test". Sieht aus wie ein Stackproblem, aber
ich weiss nicht was ich da falsch mache.

Hier den Code:

.include "m128def.inc"

.org  0x0000
  jmp  reset

;*****************************
reset:
  ;Init stack
  ldi  R16, high(RAMEND)
  out  SPH, R16
  ldi  R16, low(RAMEND)
  out  SPL, R16

  ;PORT A output
  ldi  R16, 0x01
  out  DDRA, R16

  rcall  test

  ldi  R16, 0x01
  out  PORTA, R16

loop:  jmp loop

test:  ldi R17,1
  ret
Gast #227113
Lesenswert?

Hi Alle;
Diese Funktionen sind for ATMEL uC geschrieben,
I waere sehr dankbar, wenn jemand mir sagen koennte, wei kann ich zu
msp430 umsetzen.
danke
#define WAIT_FOR_BOUNDARY()    while(!(get_hvalue(TIMESTAT2) |
0xFFFE))
#define ENABLE_T1_COMPC_INT()       do { put_hvalue(TIMECNTL3,
get_hvalue(TIMECNTL3) | 0x0019);  } while (0)
#define DISABLE_T1_COMPC_INT()      do { put_hvalue(TIMECNTL3,
get_hvalue(TIMECNTL3) & 0xFFE6); } while (0)
#define CLEAR_T1_COMPC_INT()        do { put_hvalue(TIMESTAT3, 0x0001);
 } while (0)

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