www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8l


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen:
ich habe ein problem, ich begann mit atmelcontroller zu programmieren,
genauer einem atmega8l, ich kann den controller programmieren, löschen
und das programm auslesen. jedoch führt er es nicht aus. die hardware
habe ich überprüft an der kann es nicht liegen. hier noch mein
programmcode:
#include<avr/io.h>
int main(void){
DDRD=0xFF;
  while(1==1){
  PORTD=0xFF;

  }
return 0;
}
mfg tom

Autor: Christian Zietz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Resetvektor versehentlich über BOOTRST-Fuse verbogen?
Mal ein Assemblerprogramm getestet, um Schwierigkeiten mit dem
C-Compiler auszuschließen?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
muss das Häcken beim BOOTRST-Fuse gesetzt sein oder nicht. Kann leider
noch nicht assembler programmieren.
mfg

Autor: Christian Zietz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die BOOTRST-Fuse muss unprogrammiert sein (also 1, denn 0 ist
programmiert). Ob das Dein Flashtool als Häkchen oder als fehlendes
Häkchen anzeigt, kann ich natürlich nicht wissen.

Den Assembler seines uCs sollte man schon kennen, imho. Naja, folgendes
Programm tut das selbe wie Dein C-Programm:

.include "m8def.inc"
ldi r16, 0xff
out DDRD, r16
out PORTD, r16
hang:
rjmp hang

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab dieses bit als unprogrammed gesetzt, jetzt kann ich nicht einmal
mehr das programm herunterladen. was löst es überhaubt aus?
mfg

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie müssen eigentlich die anderen bits gesetzt werden.

Autor: Christian Zietz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die BOOTRST-Fuse bestimmt, an welcher Stelle der uC nach einem Reset mit
der Programmausführung beginnt. Entweder bei 0x0000, wenn unprogrammiert
oder am Beginn der Bootloader-Section, wenn programmiert.
Das und alles weitere zu den Fuses steht im Datenblatt. Lies es doch
mal.
Zusammengefasst: Du musst die Werkseinstellung nicht ändern, damit
obige Programme laufen.

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Wie schaust du, obs läuft?
 - Haste den richtigen Controller in der make-File angegeben?
 - Schau nochmal im Datenblatt, ob du auch die richtigen Pins misst.

Mach mal "while(1).."

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.