PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmierpoblem (Fuses schuld?)



Spongebob85
03.10.2007, 11:56
Moin!
Ich hab gestern abend endlich meine Programierplatine fertiggelötet. Und es funktioniert irgendwie nix (Bis auf meinen Resettaster). Ich hatte bisher alles auf einem Steckbrett. Bisher hatte ich auch noch keinen Quarz. Jetzt hab ich mir einen 16MHz Quarz gekauft. Hab im Makefile auch schon die frequenz von bisher 1MHz auf 16MHz gestellt und das in meinem Programm auch umgeschrieben.
Hier ist mein Programm.


#include <avr/io.h>
#include <stdint.h>
#define F_CPU 16000000UL
#include <util/delay.h>

int main (void)
{
DDRA 0xff;

while(1)
{
PORTA |=(1<<0);
for (i=1; i<=10; i=i+1)
{
_delay_ms(10);
}

PORTA &= ~(1<<0);
}
for (i=1; i<=10; i=i+1)
{
_delay_ms(10);
}
}


Was ich noch dazu sagen muss, ich hab noch nix an den Fuses umgestellt.
Weiß auch noch nicht wie das geht.
Kann mein Problem jetzt daher kommen?
An der Hardware müsste alles richtig sein. Hab alles 1000 mal durchgemessen.

MfG Jan

Hubert.G
03.10.2007, 12:37
Wenn es vorher auf deinem Steckbrett funktioniert hat und du an den Fuses nichts gemacht hast, dann muss es ein Hardwareproblem sein. Das alles jetzt 16mal solange dauert ist dir klar.
HIlfe für die Fuses:
http://palmavr.sourceforge.net/cgi-bin/fc.cgi

Viktor
03.10.2007, 12:43
hallo!

Du musst die Fusebits richtig einstellen, sonst verwendet der AVR immer noch den internen Oszillator.

Hier hab ich paar nützliche Links für dich:

http://www.wiki.elektronik-projekt.de/w/index.php/AVR_Fusebits_Tutorial#CKSEL

http://palmavr.sourceforge.net/cgi-bin/fc.cgi

Edit:

hmm... war etwas zu langsam

Spongebob85
03.10.2007, 12:56
Aber WinAVR gibt mir keine fehlermeldung raus. Würde der uC mit dem internen Oscillator arbeiten, müsste das ja trotzdem funktionieren. hab wieder Alles auf 1MHz umgestellt. irgendwie geht das trotzdem nicht.

Spongebob85
03.10.2007, 13:23
@Victor
Hab mir den Calculator mal angesehen. Was muss ich denn da einstellen? Bestimmt EXT CRISTAL/RESONATOR, aber welchen??? Wenn ich das da verändert hab, ändert der meine Fuses doch nicht, oder?

MfG Jan

Viktor
03.10.2007, 14:06
@Victor
Hab mir den Calculator mal angesehen. Was muss ich denn da einstellen? Bestimmt EXT CRISTAL/RESONATOR, aber welchen??? Wenn ich das da verändert hab, ändert der meine Fuses doch nicht, oder?

MfG JanDir stehen drei Möglichkeiten zur Auswahl:
Low/Medium/High Freq.

In deinem Fall musst du Ext. Crystal/Resonator High Freq. wählen.
Start-up time - gibt an wie lange es dauert bis dein Programm gestartet wird.

Ich hoffe ich hab dich jetzt richtig verstanden!?

AVR Fuse Calculator erleichter nur das Auswählen richtiger Fuse's, die Einstellungen musst du dann manuell in deine Programmiersoftware übertragen.

Der AVR Fuse Calculator bietet drei Möglichkeiten:

1. Einstellungen über Dropdown-Menüs (linke Seite)
2. Optionsfelder (rechte Seite, die Häkchen)
3. zwei/drei hex Zahlen (rechte Seite, oben)

Ich wähle z.B. die gewünschten Einstellungen über Dropdown Menüs aus und sehe gleich welche bits ich in meinem Programm, mit dem ich auch die Software in den AVR lade, "einhacken" bzw. löschen muss.

Spongebob85
03.10.2007, 14:19
Habs jetzt hinbekommen. war wohl ein Programmfehler.
Ich habgrade versucht über Bascom die Fusebits umzustellen. konnte aber irgendwie nix ändern. Das is echt blöd. Hab keine Ahnung wie ich die Fusebits umstellen kann :-(

MfG Jan