www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega128 Unterprogrammrücksprung


Autor: Øyvind Fjellang Sæther (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Øyvind Fjellang Sæther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe schon die Lösung gefunden. Die Fuse M103C, 103 Compability mode ist
von Atmel schon gesetzt. Nach dem Löschen läuft alles supa.

siehe auch:
http://www.mikrocontroller.net/articles/AVR_Checkliste

unter Atmega128

Autor: samy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.