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
Resetvektor versehentlich über BOOTRST-Fuse verbogen? Mal ein Assemblerprogramm getestet, um Schwierigkeiten mit dem C-Compiler auszuschließen?
hallo, muss das Häcken beim BOOTRST-Fuse gesetzt sein oder nicht. Kann leider noch nicht assembler programmieren. mfg
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
ich hab dieses bit als unprogrammed gesetzt, jetzt kann ich nicht einmal mehr das programm herunterladen. was löst es überhaubt aus? mfg
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.
- 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).."
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.