Forum: Mikrocontroller und Digitale Elektronik stk500, erstes programm


von Marcel N. (rufnag)


Angehängte Dateien:

Lesenswert?

hallo,
bin blutiger anfänger und beschäftige mich erst seit heute mit dem 
microcontoller.
wollte erst mal das programm laufen lassen, welches im anhang vom 
handbuch des stk500 abgebildet ist.
leider tut sich nichts.
bei den einstellungen hab ich mal alles auf auto. im anhang findet ihr 
die fehlermeldung.
kann mir nitte jemand helfen
hab leider auch schon das ganze forum abgesucht, aber bestimmt werd ich 
die lösung übersehen haben und die frage steht schon 20 mal im forum.
grüße und schon mal danke

von Andreas W. (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite


Lesenswert?

in der fehlermeldung steht doch:

can not both program/verify AND read_flash

mach mal read_flash raus...

von Marcel N. (rufnag)


Lesenswert?

also,
hab mal alle häckchen rausgemacht, bis es problemlos durchgelaufen ist.
sind probleme mit flash und eeprom
wenn ich build mach, liefert er keine fehler oder warnungen, aber 
nachher läuft das programm nicht.
kann mir vielleicht jemand sagen wie ich normalerweise als anfänger 
schrittweise anfang, so das es eigentlich keine probleme geben 
sollte????
hier der code:
;***** 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

und das die fehlermeldung die bei run immer kommt:
AVR Simulator: Device has no EEPROM interrupt.

von Michael U. (amiga)


Lesenswert?

Hallo,

also obiges Programm assembliert ohne Fehler und läuft auch im Simulator 
ohne Probleme.

Der Hinweis auf den EEPROM Interrupt ist unintessant, keine Ahnung, was 
sich Atmel dabei in diesem Zusammenang gedacht hat.

Andere Frage: Du hast wirklich einen AT90S8515? Eher doch wohl einen 
Mega8515? Dann hast Du die falsche CPU eingestellt.

Gruß aus Berlin
Michael

von Marcel N. (rufnag)


Lesenswert?

okay danke, das war auf alle fälle mal n nützlicher tip, aber 
funktionieren tuts immernoch net:-(

von Spess53 (Gast)


Lesenswert?

Hi

Als erstes solltest du auf ISP-Programmierung einstellen. Dann überprüfe 
welchen Controller du benutzt. Der gleiche Typ muss im Programmerfenster 
eingestellt sein. Steckt dein Controller im richtigen Sockel? Und hast 
du das Kabel (6pol) von ISP6PIN zum richtigen Steckverbinder geführt 
(rot/grün/blau)

MfG Spess

von Marcel N. (rufnag)


Lesenswert?

okay seh schon, bin echt noch so was von nullchecker, hab ich natürlich 
alles net gemacht, gibts vielleicht ne seite wo alles etwas 
ausführlicher erklärt wird, weil vorher muss ich ja gar net anfangen
grüße

von Severino R. (severino)


Lesenswert?


von Spess53 (Gast)


Lesenswert?

Hi

Noch einfacher: AVR-Studio-Hilfe STK500

MfG Spess

von Marcel N. (rufnag)


Lesenswert?

okay, hab das mir mal durchgelesen und es auch ausprobiert, so weit 
verständlich.
hab jetzt mal wieder mein programm genommen, wobei ja die leds leuchten 
sollten.
nun mal zu meinem vorgehen:
erst mal zur hardware:
hab mit der rs232 schnittstelle gearbeitet, mit isp gabs probleme, auf 
was muss ich da bei der verkabelung achten??
hab dann noch mein port B mit den LEDs und mein Port D mit den switches 
verbunden.
okay dann buil and run, run und es tut sich aber leider nichts.
es kommt zusätzlich auch immer die meldung, dass was mit meiner spannung 
nichts passt, sprich, dass die targetspannung nicht zwischen 4,5 und 
5,5V liegt, das ist aber der fall!
sorry für die wohl total unprofessionelle beschreibung

von Magnus Müller (Gast)


Lesenswert?

Hast du eine Digicam? Wenn ja, dann mach mal ein (scharfes!) Bild von 
deinem STK500, so wie es jetzt ist und stell es hier als Dateianhang 
rein. Dann können wir vielleicht sehen, wo der Hund begraben liegt.

Gruß,
Magnetus

von Marcel N. (rufnag)


Angehängte Dateien:

Lesenswert?

bitte schön und nochmal vielen dank für die mühe

von Spess53 (Gast)


Lesenswert?

Hi

Also 'Build and Run' ist für den internen Simulator und hat mit der 
Programmierung nichts zu tun.

Was steht den in dem STK-Fenster wenn du 'Board' anklickst?

MfG Spess

von Simon K. (simon) Benutzerseite


Lesenswert?

Das Programmierkabel ist doch garnicht gesteckt... Oder sehe ich das 
falsch?

PS: Habe leider kein STK500

von Marcel N. (rufnag)


Angehängte Dateien:

Lesenswert?

bitte

von Andreas W. (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite


Lesenswert?

dein controller überhaupt nicht mit dem programmier-controller 
verbunden. nimm das 6 polig flachbandkabel und verbinde den ISP-Stecker 
mit SPROG3

und les dir mal kapitel 3.6.1 im handbuch (isp-programming) durch! da 
steht sowas...

von Michael U. (amiga)


Lesenswert?

Hallo,

richtig, Verbindungskabel ISP ist nicht gesteckt...
AVR STK 500 User Guide Abschnitt 3-10 Tabelle 3-2 und Figure 3-16

Gruß aus Berlin
Michael

von Spess53 (Gast)


Lesenswert?

Hi

Ob der Controller überhaupt erkannt wird, lässt sich am besten unter 
'Advanced'-> 'Signature Bytes' -> 'Read' überprüfen. Erst wenn das 
klappt kannst du dir einen Kopf über das Programmieren machen.

MfG Spess

von Magnus Müller (Gast)


Lesenswert?

"Bilder sagen mehr als tausend Worte" ;o)

von Marcel N. (rufnag)


Angehängte Dateien:

Lesenswert?

so, endlich hat es funktioniert.
vielen dank an alle.
jetzt kann ich mich auch endlich mal mit der software beschäftigen.
gruß

von Spess53 (Gast)


Lesenswert?

Hi

Die Folie würde ich wegnehmen. Die ist nämlich, wenn auch sehr 
hochohmig, elektrisch leitfähig.

MfG Spess

von Marcel N. (rufnag)


Angehängte Dateien:

Lesenswert?

sers,
ich mal wieder
was kann ich bei der im anhang stehenden fehlermeldung machen,
wenn ich die frequenzen änder hilft das leider nichts
gruß und danke

von Spess53 (Gast)


Lesenswert?

Hi

Und was hast du davor gemacht?

MfG Spess

von Marcel N. (rufnag)


Lesenswert?

sers,
keine ahnung, erst als die meldung kam hab ich was verstellt

von Magnus Müller (Gast)


Lesenswert?

"A problem occured when executing the command"

...welche Aktion hätte denn da ausgeführt werden sollen?

Hast du evtl. noch andere Signale auf den ISP-Leitungen anliegen? (z.B. 
Schalter, LEDs, o.Ä.)

von Spess53 (Gast)


Lesenswert?

Hi

Magnus hat Recht. Lt. deinem Foto hast du die Taster an PortB 
angeschlossen.
Auf dem liegen die Programmieranschlüsse des Controllers.

MfG Spess

von Tango (Gast)


Lesenswert?

Nö, Switches hängen laut Foto an PORTD.
Bei mir läuft die Meldung auf, wenn der Oszillator vom STK500
( warum auch immer ) auf 32.62 kHz Takt zurückfällt...

von Marcel N. (rufnag)


Lesenswert?

ich mal wieder,
experimentier gerade mit einfachen Programmen rum.
Will mit einem Switch, genauer Schalter 0, die LED 3 ein und aus 
schalten.
So, klappt, aber eben nur manchmal, wo ist der Fehler im Code?
Hier der Code und schon mal danke:
.include "m8def.inc"

         ldi r16, 0xFF
         out DDRB, r16       ; Port B ist Ausgang

         ldi r16, 0x00
         out DDRD, r16       ; Port D ist Eingang


         ldi r16, 0xFF
         out PORTB, r16      ; PORTB auf 0xFF setzen -> alle LEDs aus

loop:    sbic PIND, 0        ; "skip if bit cleared", nächsten Befehl 
überspringen,
                             ; wenn Bit 0 im IO-Register PIND =0 (Taste 
0 gedrückt)
         rjmp loop           ; Sprung zu "loop:" -> Endlosschleife

         cbi PORTB, 3        ; Bit 3 im IO-Register PORTB auf 0 setzen 
-> 4. LED an

loop2:    sbic PINB, 3
        rjmp loop2
        sbic PIND,0
            rjmp loop2           ; Endlosschleife
            sbi PORTB, 3
      rjmp loop

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von Rahul D. (rahul)


Lesenswert?

Du solltest die Pullups des PortD einschalten.

von Marcel N. (rufnag)


Lesenswert?

sers,
habe nun ein LCD und zwar ein EA DIP204-4 mi einem KS0073 Kontroller.
Versuche bisher erfolglos das TEST-Programm vom Tutorial inAssembler zum 
laufen zu bringen, leider erscheint nicht TEST auf meinem LCD, denke, 
dass ich mit der initialisierung von meinem LCD was Falsch mach, kann 
mir vielleicht einer sagen, wie ich den code vom tutorial abändern muss, 
dass es funktioniert,
vielen dank schon mal

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.