www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega16u4 mit Hilfe STK600 programmieren


Autor: Thomas R. (der_ilt)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite derzeit an der Programmierung des Atmega16u4 mit Hilfe des 
STK600. Dazu findet man sehr dürftiges Material im Netz.
Mein erstes Ziel ist es, einfach ein paar LEDs auf dem Entwicklungsboard 
aufleuchten zu lassen.
 Ich habe in CodeVision ein wenig was zusammengetippt (siehe Anhang), 
was prinzipiell funktionieren sollte, allerdings wollen die LEDs nicht 
aufleuchten. Ich kann aber problemlos über die JTAG-Schnittstelle auf 
den Chip zugreifen, Fuses und Lock-Bits  auslesen etc. Ich bin da gerade 
etwas hilflos. Vllt habe ich einfach eine Denkblockade.

Vielen Dank für eure Hilfe und Anregungen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Mega16U4 ist erst mal auch nichts anderes als ein Meg16 mit halt 
zusätzlich einem USB Interface. Aber das muss dich ja jetzt erst mal 
nicht weiter tangieren.

D.h. du kannst alle Resourcen benutzen, die du für AVR-Mega Prozessoren 
findest und dich erst mal in die Grundlagen einarbeiten.

zb das hier
AVR-Tutorial
oder das hier
AVR-GCC-Tutorial


Dazu solltest du noch rausfinden, ob du einen Ausgangs-Portpin auf 0 
oder auf 1 setzen musst, damit eine daran angeschlossene LED leuchtet. 
Das ist nämlich keineswegs Gott gegeben, dass eine 1 am Ausgangspin eine 
LED zum leuchten bringt.


Dein erstes Programm könnte zb so aussehen
#include <mega16u4.h>   // muss das bei Codevision so sein?
#include <io.h>

void main(void)
{
 DDRD = 0xFF;
 
 while(1)
 {
   PORTD = 0x55;
 }
}

das setzt abwechselnd die Hälfte der Portpins am Port D auf 0 und die 
anderen auf 1. D.h. wenn 8 LED an diesen Port verkabelt sind, dann 
werden da 4 LED brennen. Noch ist nicht klar welche, aber wenn alle 
gleich verdraht sind werden mit Sicherheit einige brennen. Wenn nicht, 
dann hast du wo einen gröberen Verkabelungsfehler.

Autor: Thomas R. (der_ilt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Grundlagen des Programmierens sind mir weitestgehend bekannt.
Den Atmega habe ich auf dem STK600 und habe dann mittels Steckverbinder 
den PortD mit den LEDs, die auf diesem Board vorhanden sind, verbunden. 
Da sollte es also keine Probleme geben.
Und die LEDs sollten leuchten, wenn die Ports auf '1' stehen.
Mir ist vollkommen unklar warum das nicht funktioniert. Ich werde mal 
meine Vorgehensweise auflisten.

1. Ich schreibe Programm in Codevision - Kompilieren + Bilden, wobei mir 
die benötigte .hex-Datei erzeugt wird
2. dann schiebe ich die .hex-Datei mittels AVRStudio in den 
Flash-Speicher des uC
3. und dann warte ich darauf, dass was passiert.

Wurde da irgendein Schritt vergessen?

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.