Eine Re(Aktion) wäre nett :) STK500 mit Anfängerproblemen

ThinGh

Neues Mitglied
18. Okt. 2010
8
0
0
Bielefeld, ja es gibt sie ^^
Sprachen
Guten Abend,

(vorstellungsrunde kommt hiernach :D)

Nach langem hin und her und über nem halbem Jahr Verspätung bedingt durch Arbeit und Zeit, hab ich mich nun endlich für das STK500 entschieden. Bestellt bei Reichelt,war auch recht fix da, ausgepackt und Netzteil dranne (12VDC).

Das Programm was auf dem 8515 drauf (leider war ...) funktionierte. Leider, weil ich mich durch unzählige Tutorials bereits durchgeschlagen habe um überhaupt den beliebten Anfänger Kurs "LED auf Tastendruck leuchten lassen" iwie zu Meistern doch allein da haperts iwie schon. Es gibt keine Reaktion auf den kopierten Programm Code.

Aber erstmal paar Grunddaten :p

Nutze:
# Windows 7 64Bit,
# AVR Studio 4.18 Build 716
# STK 500 mit dem Atmega8515, STK500 bedingt durch ein Tutorial Upgegradet (Hardware Revision: 0x02, Firmware Version: 0x020a)
# Anschluss über das mitgelieferte SUB-D Kabel

Das ganze wollte ich dann mit Assembler anfangen, lernen und verstehen. Also Grundkenntnisse in dieser Richtung (Assembler etc.) hab ich keine. Durch die Ausbildung bin ich allerdings bischen mit der Siemens SPS S7 vertraut. Genauso in der Elektrotechnik, hab schon paar Schaltungen hergestellt und da mir das so langsam zu mühselig ist, 7 und mehr IC's zu verwenden wollte ich nun in die µC Ebene eintauchen :)


Nun zur Problemebschreibung:

1 Zehnadriges Kabel von PortD auf Switches, eins von PortC nach LEDS und nen 6adriges von ISP6PIN auf SPROG3 so wie ich es in der Hilfe sah. Nu schalte ich das STK500 ein, starte anschließend AVR Studio, erstelle ein neues Projekt mit dem Namen "tut1" wähle Atmel AVR Assembler -> weiter ->AVR Simulator und wähle den Atmega8515.

Nun kopier ich folgenden Code ...

Code:
   1.      .include "m8def.inc"    ;Definitionsdatei fuer den ATmega8 dazuladen
   2.      .cseg                   ;Beginn eines Code-Segmentes
   3.      .org 0                  ;Startadresse=0x0000 (Anfang des Flash)
   4.  
   5.          ldi r16,0b11111111  ;PortD alle Bits auf Ausgang
   6.          out ddrd,r16        ;setzen
   7.
   8.          clr r16             ;Anfangswert setzen (alles Low)
   9.          out portd,r16       ;Daten an PortD ausgeben
  10.
  11.      mainloop:               ;Ein Sprunglabel
  12.
  13.          rjmp    mainloop    ;Schleife neu beginnen (Eine Endlosschleife)

Der Code stammt aus dem letzen versuch meiner seits von hier, der Beitrag von "dino03 - AVR ATmega - Wie fange ich an - Der Einstieg".

Builde das ganze mit F7 und unten erscheint "Assembly complete, 0 errors. 0 warnings" Ich freu mich und drücke nach nem anderem tut oben auf das
"Con" symbol. Wähle dort mein STK500 mit COM1 und ein neues fenster öffnet sich... und ab hier steh ich im Wald. Denn ich vermute hier wird die Fehlerquelle sein.
Unter Main betätige ich einmal "Read Signature", in Program verweise ich unter Flash die erstelle tut1.hex datei und drücke auf Program.

Unten erfolgt dann folgender Text:

Getting isp parameter.. SD=0x03 .. OKOK
Reading FLASH input file.. OK
Entering programming mode.. OK!
Erasing device.. OK!
Programming FLASH .. OK!
Reading FLASH .. OK!
FLASH contents is equal to file.. OK
Leaving programming mode.. OK!

Und das wars. Keine LED an, auf Tastendruck tut sich da auch nichts. Und das mittlerweile die ganze Zeit (2Tage) bei jedem Tutorial. Also muss ich doch iwo was falsch machen :D Daher bitte ich euch mir nen Gedankenstoß zu geben wo denn hier mein Fehler is.

Auch wenn das nen riesiger Text is, ich hoffe er is verständlich geworden. In diesem Sinne, nen schönen Abend noch ;)


MfG, ThinGh
 
Hi
nun, ich setz die Begrüßung gleich mal hier rein... :flowers: und antworte denn auch gleich. Assembler ist gut, bring er dich doch ganz nah an Bit's und Bytes, aber...
Also, es fehlt die Initialisierung vom Stack, auch wenn er hier nicht benötigt wird. Dann, was hast du erwartet ? das deine LED's angehen... ich weiß zwar nicht, wie diese verdrahtet sind, aber du setzt die Ausgänge und im nächsten Befehl löscht du sie wieder. Das wars. Denk mal nach, bei 1 MHz Taktfrequenz und 2 Zyklen pro Befehl .... also 4 Takte, was willst du da sehen ?
Schau mal in die FAQ 's. Dort findest du Beiträge auch zu Assembler. Mit einem praktischen Hintergrund: Einen Monitor ins Herz des Controllers.
Gruß oldmax
 
Hallo oldmax und Danke für die Blumen :hello:

Also angeschlossen sind die LEDs über das STK500. Dazu wie in dem Test Programm was auf dem 8515 drauf war (PortD auf Switches, PortC nach LEDs, SP6PIN auf SPROG3)

Ich bin davon ausgegangen das dadurch ein ansteuern der LEDs möglich wäre. Wenn ich jedoch von dir lese das dass ganze lediglich paar µs an wäre also die LED ... frag ich mich warum dann im Tutorial stand "Es werde Licht" :D

Und wie eine Initialisierung zu machen ist oder was überhaupt ein Stack ist, soweit bin ich noch nicht. Jedoch dabei mich da rein zu lesen. ;)


MfG,

ThinGh
 
Moin,

LEDs richtig herum eingestetzt?
LEDs über Vorwiderstand an 5V angeschlossen?

@ oldmax
Ich bin auf der ATMega-Schiene nicht der Assemblercoder.
Aber wie ich es verstehes setzt er die Ports nicht, sondern definiert sie als Ausgänge und löscht dann ab. Bei LED gegen 5V sollte das meiner Meinung nach so funzen.

Schönen Gruss
Markus
 
Hallo Markus Eisenberg,

Inwiefern richtig rum einegsetzt? Bzw Vorwiderstand ? Also Ich hab jeweils die Rote markierung richtung der 1 gesetzt.

So langsam hab ich das gefühl ich muss externe leds verwenden? Frag ich mal explizit ob ich überhaupt mit diesem Programm die LEDs des STK500 ansteuern kann? Denn das versuch ich ja die ganze Zeit :confused:

Oder muss ich über nen Steckbrett die LEDs mit entsprechenden Vorwiderstand mit dem PortD verbinden?
 
Hi,

kann ich Dir leider nicht beantworten, da ich diese Board nicht nutze.
Warte einfach ab - Es kommen bestimmt noch Tips.

Schönen Gruss
Markus
 
Hi
@Markus. Hast recht... :eek:
Vermutlich sind die LED am gemeinsamen GND oder verkehrt herum... Ich kenn das Board auch nicht.
Was ich auch nicht weis: ist der Atmega8 und der Atmega8515 identisch? Frage nur wegen der .INC Datei.
Gruß oldmax
 
Hey,

also da hab ich doch juste nachgeblättert und folgendes im Datenblatt gefunden (siehe Anhang).

Genauso mal die m8def.inc Datei verfolgt. Im selben Ordner ist auch eine 8515def.inc vorhanden. Also m8def.inc durch 8515def.inc ersetzt und Übertragen mit "Program", doch selbes Spiel ;)

Gruß, ThinGh


Edit: hab den Fehler gefunden bzw mir wurd geholfen! Laut Programm spuckt er die Daten aus PortD raus und ich habe die ganze zeit die LEDs noch an den Tastern dranne. Die LEDs nu am PortD dranne und schwups leuchten sie :)
 

Anhänge

  • ledbeleg.JPG
    ledbeleg.JPG
    37,7 KB · Aufrufe: 21
Hallo ThinGh,

willkommen im Forum.

...
Also angeschlossen sind die LEDs über das STK500. Dazu wie in dem Test Programm was auf dem 8515 drauf war (PortD auf Switches, PortC nach LEDs, SP6PIN auf SPROG3)

Dein Assemblercode scheint mir in Ordnung, wenn du einen ATmega8 bestückt hast. Du konfigurierst alle Pins des PortD als Ausgang und setzt alle Pins auf low. Du musst dann die LEDs an PortD anschließen, nicht an PortC.


Grüße,
Dirk

:D EDIT:
Ich hatte dein EDIT nicht gesehen, du hattest ja den Fehler schon gefunden :eek:
 
Hallo,

Edit: hab den Fehler gefunden bzw mir wurd geholfen! Laut Programm spuckt er die Daten aus PortD raus und ich habe die ganze zeit die LEDs noch an den Tastern dranne. Die LEDs nu am PortD dranne und schwups leuchten sie :)
na dann lag der Fehler wenigstens nicht in meinem kleinen Progrämmchen ;)

Gruß
Dino
 
Das Entwicklungsboard STK500 ist bei uns auch verfügbar:

AVR-PRAXiS Onlineshop: shop.avr-praxis.de
und im neuen Onlineshop: www.mikrocontroller-praxis.de

Die Preise könnt ihr ja selber vergleichen :)

Guten Abend Dirk !

Wieso hast du das nicht eher gesagt da hät ich ne menge Geld Sparen können :eek: Naja, sollte eigentlich keine Werbung sein nur eher von wo es stammt. Evtl sind ja Fehler oder Bugs bekannt die von dort kommen :D

Vielen dank übrigens für die Blumen ^^


In diesem Sinne, nen angenehmen ja noch Restabend
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)