mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik stk500, erstes programm


Autor: Marcel Niess (rufnag)
Datum:
Angehängte Dateien:

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

Autor: Andreas Weschenfelder (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der fehlermeldung steht doch:

can not both program/verify AND read_flash

mach mal read_flash raus...

Autor: Marcel Niess (rufnag)
Datum:

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

Autor: Michael U. (amiga)
Datum:

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

Autor: Marcel Niess (rufnag)
Datum:

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

Autor: Spess53 (Gast)
Datum:

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

Autor: Marcel Niess (rufnag)
Datum:

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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Noch einfacher: AVR-Studio-Hilfe STK500

MfG Spess

Autor: Marcel Niess (rufnag)
Datum:

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

Autor: Magnus Müller (Gast)
Datum:

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

Autor: Marcel Niess (rufnag)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
bitte schön und nochmal vielen dank für die mühe

Autor: Spess53 (Gast)
Datum:

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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programmierkabel ist doch garnicht gesteckt... Oder sehe ich das 
falsch?

PS: Habe leider kein STK500

Autor: Marcel Niess (rufnag)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
bitte

Autor: Andreas Weschenfelder (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite
Datum:

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

Autor: Michael U. (amiga)
Datum:

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

Autor: Spess53 (Gast)
Datum:

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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bilder sagen mehr als tausend Worte" ;o)

Autor: Marcel Niess (rufnag)
Datum:
Angehängte Dateien:

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

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

MfG Spess

Autor: Marcel Niess (rufnag)
Datum:
Angehängte Dateien:

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

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Und was hast du davor gemacht?

MfG Spess

Autor: Marcel Niess (rufnag)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sers,
keine ahnung, erst als die meldung kam hab ich was verstellt

Autor: Magnus Müller (Gast)
Datum:

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

Autor: Spess53 (Gast)
Datum:

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

Autor: Tango (Gast)
Datum:

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

Autor: Marcel Niess (rufnag)
Datum:

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest die Pullups des PortD einschalten.

Autor: Marcel Niess (rufnag)
Datum:

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

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.