Erstmal vorweg, ich bin absoluter Neuling in Sachen Mikrocontroller,
deshalb bitte ich auf einem einfach Niveau zu antworten.
Also es handelt sich um ein Fach in der Uni, worin wir ein kleines
Betriebssystem umsetzten müssen. Aufgrund einiger Fehlversuche habe ich
mich jetzt entschlossen, das Board, welches sie benutzten nach zu bauen.
So weit hat auch alles geklappt. Bis auf:
In der Schaltung wird ein Quarzoszillator mit einen Atmega644 verwendet.
Der Quarzoszillator:
http://www.reichelt.de/Oszillatoren/OSZI-20-000000/3/index.html?;ACTION=3;LA=446;ARTICLE=13694;GROUPID=3174;artnr=OSZI+20%2C000000
Zu dem habe ich mich ins Thema Fuse eingelesen und habe mich für die im
Anhang angehängte Konfiguration entschieden.
Dann ein kleines Bekanntes Testprogramm verwendet:
1 |
|
2 | #define F_CPU 20000000UL
|
3 | #include <avr/io.h>
|
4 | #include <util/delay.h>
|
5 | #define LED_DDR DDRB
|
6 | #define LED_PORT PORTB
|
7 | #define LED PB0
|
8 | int main(){
|
9 | LED_DDR |=( 1 << LED );
|
10 |
|
11 | while( 1 ) {
|
12 | _delay_ms( 1000 );
|
13 | LED_PORT |= ( 1<< LED );
|
14 | _delay_ms( 1000 );
|
15 | LED_PORT &= ~( 1 << LED );
|
16 | }
|
17 |
|
18 | }
|
Das Problem ist jetzt aber, das die LED nicht im Sekundentakt, sondern
ca. im 8 Sekundentakt an bzw. aus geht.
Verringere ich die F_CPU um eine 10er Potenz auf 2000000UL Scheint es
eine „richtige“ Frequenz zu geben. Aber warum? Welche Einstellung liegt
hier denn noch quer.
ps. Ich benutze das AVR-Studio 4(Schrecklich, aber die Uni will das so!)
Und einen AVRISP mkii Programmer, falls wichtig ist.
Pps. Das der Quarzoszillator richtig angeschlossen ist, davon geh ich
aus, denn der kriegt ja ein Takt. Ansonsten Halt nur am XTAL1
angeschlossen, XTAL2 ist unverbunden.
Ich hoffe mein Fehler ist nicht ganz zu blöd, aber ich hab lange gesucht
und viel Probiert, aber nichts hat geholfen.