Forum: Mikrocontroller und Digitale Elektronik Online-Beobachtung


von Fr S. (headman)


Lesenswert?

Hallo Leute,
ich bin Anfänger und möchte mich in die Programmierung von 
Mikrocontrollern einarbeiten. Ich verwende das AVR-Studio Version 4.15 
Build 619 und STK500 mit einem ATmega8515. Die Beispielprogramme hier 
aus dem Forum laufen wunderbar. Nun habe ich das Problem, dass z.B. das 
Programm:

;***** STK500 LEDS and SWITCH demonstration
.include "8515def.inc"
.def Temp =r16 ; Temporary register
.def Delay =r17 ; Delay variable 1
.def Delay2 =r18 ; Delay variable 2
;***** Initialization
RESET:
  ser  Temp
  out  DDRB,Temp    ; Set PORTB to output
;**** Test input/output
LOOP:
  out  PORTB,temp    ; Update LEDS
  sbis  PIND,0x00    ; If (Port D, pin0 == 0)
  inc  Temp      ; then count LEDS one down
  sbis  PIND,0x01    ; If (Port D, pin1 == 0)
  dec  Temp      ; then count LEDS one up
  sbis  PIND,0x02    ; If (Port D, pin2 == 0)
  ror  Temp      ; then rotate LEDS one right
  sbis  PIND,0x03    ; If (Port D, pin3 == 0)
  rol  Temp      ; then rotate LEDS one left
  sbis  PIND,0x04    ; If (Port D, pin4 == 0)
  com  Temp      ; then invert all LEDS
  sbis  PIND,0x05    ; If (Port D, pin5 == 0)
  neg  Temp      ; then invert all LEDS and add 1
  sbis  PIND,0x06    ; If (Port D, pin6 == 0)
  swap  Temp      ; then swap nibbles of LEDS
  ;**** Now wait a while to make LED changes visible.
  DLY:
  dec  Delay
  brne  DLY
  dec  Delay2
  brne  DLY
  rjmp  LOOP      ; Repeat loop forever

im reinen Simulationsbetrieb vom AVR-Studio anders läuft wie auf der 
Testplatine. Kann mir jemand sagen, woran das liegen könnte. Habe hier 
im Forum nichts gescheites gefunden.
Als nächstes möchte ich wissen, ob es möglich ist, ein Programm, das auf 
der Testplatine läuft, zu beobachten. D.h. um zu sehen was in den 
Registen steht und so.

Eine ähnlich Funtion kenne ich von der Programmierung von SPS-Systemen.

Vielen Dank für eure Antworten und Hilfe

Headman

von Klaus (Gast)


Lesenswert?

Zum "online beobachten", auch In-System-Debugging genannt, musst du die 
Jtag-Schnittstelle des Controllers verwenden. Dazu braucht es allerdings 
spezielle Hardware. Die gibt es natürlich fertig zu kaufen, oder wenn du 
gerne selber basteln möchstest, kann ich dir Evertool empfehlen:

http://www.siwawi.arubi.uni-kl.de/avr_projects/evertool/



Zu deinen Program:  wie verhält es sich denn im Controller und wie 
sollte es sich verhalten? Ohne diese Angaben kann man nur raten.

von Fr S. (headman)


Lesenswert?

Hallo Klaus,
vielen Dank für deine schnelle Antwort.

Zu meinem Programm:
Ich wollte nur ein kleine Rechenprogramm erstellen "zum warm werden" ;-)

z.B.
Register 16 laden mit 0x03 => Eingang 0
Register 17 laden mit 0x05 => Eingang 1
Register 18 laden mit 0x07 => Eingang 2

nun sollen die Eingänge 0-2 gedrückt werden und die Registerwerte sollen 
addiert und dem Wert entsprechent auf den Ausgangsport gegeben werden. 
Aber leider leuchten alle Dioden d.h. alle Ausgänge sind gesetzt.

zu der Jtag-Schnittstelle:
habe ich das richtig verstanden, daß man die Schaltung zwischen der 
Testplatine und dem Rechner schaltet, und dann die Abläufe bzw. die 
Inhalte der Register usw. am PC beobachten kann!
Wenn das so richtig ist, hätte ich gern den Schaltplan zum Nachbauen und 
wenn erforderlich die nötigen Einstellung im AVR-Studio. (Natürlich nur 
wenn du sie hast und zur Verfügung stellen kannst und möchtest.

Vielen Dank

Gruß
Headman

von der andere Klaus (Gast)


Lesenswert?

sieht schon lustig aus

ASM mit C Kommentaren!

von Daniel B. (und3rt4ker)


Lesenswert?

>ASM mit C Kommentaren!

Wo?

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.