Forum: Mikrocontroller und Digitale Elektronik Frage rund um das Stk500 und Stk501 von Atmel


von Mike C. (whitecrane22)


Lesenswert?

Guten Abend Zusammen,

ich habe mir jetzt für die Uni ein Atmel Stk500 zugelegt. Dort haben wir 
derzeit das Stk500, Stk501 (für Atmega128) und einen Debugger Mk2 oder 
sowas in der Art im Einsatz. Letzteres benötigt man aber nicht 
unbedingt. Leider habe ich ein paar Fragen.


Frage 1: Wenn ich diesen Code hier ausführe, passiert nichts:


.include "mega128.inc"

  ldi r16, 0xff
  sts DDRB, r16

  ldi r16,~0x00
  sts PORTB,r16


  ldi r16,0x00
  sts DDRD, r16

  ldi r16, 0x01
  sts PORTD, r16


  ldi r17, 0x04  ;welcher_Knopf
  ldi r18, 0x00  ;i
  ldi r19, 0x04  ;zum vergleichen in while schleife



forschleife:

  lds r20, PIND

  inc r18
  and r17,r20    ;logische verundung steht in r17
  cp r19,r17     ;wenn gleich gehts weiter

  brne forschleife


  mov r21,r18
  sts PORTB,r21




  jmp forschleife



Das ist natürlich nur ein Beispiel. Das liegt natürlich daran, dass das 
Stk501 noch nicht drangesteckt wurde. Aber warum funktioniert es nicht 
auf dem Stk500 trotz fehlendem Stk501. Ok, wir programmieren in der UNi 
mit stk500 und stk501, aber das hier ist doch Maschinensprache und 
Befehl ist doch Befehl oder? Fehler hat mir das Avr nicht angezeigt, da 
ich in AVR Atmega128 eingestellt habe. Da es aber auf dem Stk500 nicht 
drauf ist, funktioniert es ohne stk5401 nicht oder?



Zweite Frage: Wenn ich statt der mega128.inc eine andere Datei inkluden 
möchte, funktionietrt der Befehl jmp nicht, sondern nur rjmp, woran 
liegt das denn?


und als letztes möchte ich kich erkundigen, was ich jetzt mit dem stk500 
eigentlich machen kann und welche dateien ich oben statt mega128.inc 
einbinden kann? Und was genau stele ich im AVR Studio ein vor allem beim 
überspielen auf den Controller, denn es gibt so viele Einstellungen und 
Häkchen, habe echt keinen Durchblick.

von spess53 (Gast)


Lesenswert?

Hi

>Das ist natürlich nur ein Beispiel. Das liegt natürlich daran, dass das
>Stk501 noch nicht drangesteckt wurde. Aber warum funktioniert es nicht
>auf dem Stk500 trotz fehlendem Stk501.....

????????????????????????????????

Schon mal gelesen, was du da geschrieben hast. Dafür würde ich 
mindestens eine Flasche Braunen benötigen.

Da dein Beispiel keinerlei Funktion hat, warum sollte es dann nicht 
funktionieren.

Leg mal das/die STK erstmal ganz weit weg, ehe du noch etwas kaputt 
machst. Dann lädst du dir mal die Datenblätter der AVR, liest die in 
Ruhe durch und wenn du in einigen Wochen ungefähr weist worum es geht 
kannst du auch verständliche Fragen stellen.

MfG Spess

von Martin V. (oldmax)


Lesenswert?

Hi
Nunja, Befehl ist Befehl, das ist schon richtig, aber die Befehle müssen 
auch Befehle sein.
sts PORTD, r16 ist falsch und  sollte mit  Out PORTD, r16 funktionieren

ebenso lds r20, PIND lautet In r20, PIND
Zumindest ist das bei mir so.....

Gruß oldmax

von Michael U. (amiga)


Lesenswert?

Hallo,

Michael Klein wrote:
> Frage 1: Wenn ich diesen Code hier ausführe, passiert nichts:
Wo aus führen lässt? Auf einem nicht vorhandenen Prozessor?

> Das ist natürlich nur ein Beispiel. Das liegt natürlich daran, dass das
> Stk501 noch nicht drangesteckt wurde. Aber warum funktioniert es nicht
> auf dem Stk500 trotz fehlendem Stk501.
Das STK500 ist eine Sammlung Fassungen für diverse AVR-Controller und 
ein Programmieradapter für diese.
Das STK501 ist ein auf ein Adapterbosrd für das STK500 gebauter 
ATMega128.

Ohne diesen hast Du ja keinen Mega128 zur Verfügung...

> Zweite Frage: Wenn ich statt der mega128.inc eine andere Datei inkluden
> möchte, funktionietrt der Befehl jmp nicht, sondern nur rjmp, woran
> liegt das denn?
Schonmal ins Datenblatt des von Dir eingebundenen AVR geschaut?
Da gibt es eine Zusammenfassung der Assemblerbefehle, die dieser 
konkrete Typ kann.
JMP macht nur auf AVR mit einsprechenden Speichergrößen wirklich Sinn, 
bei den kleineren reicht RJMP und den ganzen Bereich anzusprechen. Also 
können sie kein JMP.
>
>
> und als letztes möchte ich kich erkundigen, was ich jetzt mit dem stk500
> eigentlich machen kann und welche dateien ich oben statt mega128.inc
> einbinden kann?
Naja, sinnvollerweise den, den Du auch auf das STK500 draufgesteckt 
hast...
Mitgeliefert war ja wohl meist ein Mega8515 oder so, aber das steht ja 
auf diesem drauf.

 Und was genau stele ich im AVR Studio ein vor allem beim
> überspielen auf den Controller, denn es gibt so viele Einstellungen und
> Häkchen, habe echt keinen Durchblick.

Mode ISP, ISP-Clock auf 125kHz (oder in der Gegend), Dein HEX-File 
aussuchen und los.

Gruß aus Berlin
Michael

von spess53 (Gast)


Lesenswert?

HI

@Michael U. (amiga)  Ich tippe auf eine 'Build & Run' Situation. Und 
dein Namenvetter meinte er sieht den Controller und nicht die 
Simulation.

MfG Spess

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.