PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Externer Quarz Atmega32 Einsteigerfrage



walterk
10.10.2009, 11:37
Hallo Forum!

Möchte mit AVR Studio den Clock eines ATmega32 auf einen externen Quarz mit 16 MHz einstellen.

Im Datenblatt Seite 25 wird indirekt vor dem Aussperren in einer Fußnote gewarnt (CKSEL3..0 "1" means unprogrammed).

Meine Programmzeile lautet:
CKSEL &= ~((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3));

Eine der drei Fehlermeldungen lautet:
error: 'CKSEL' undeclared (first use in this function)

Die includes dieses Programms:
#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/io.h>
#include <avr/delay.h>


Im AVR Studio4, AVR, Registerkarte Fuses, Option SUT_CKSEL sind ebenfalls viele Einstellmöglichkeiten. Diese werden jedoch nicht über den MK2 auf das RN-Board übertragen.

Google findet leider nichts passendes.

Habe ich eine Includedatei vergessen? Wenn ja, welche?

Alternativ:
Wie kann ich mit AVR Studio CKSEL3 bis CKSEL0 auf Null setzen?

Danke für die Antworten.

oberallgeier
10.10.2009, 11:56
Uuuups - das ist wirklich ein hübscher Fallstrick.

Fus ebits (schau mal hier nach) (http://www.rn-wissen.de/index.php/Avr#Die_Fusebits) werden nicht im Code gesetzt. Das geht nicht als ausführbare Anweisung an den Mikrocontroller. Die werden ein einer separat wählbaren Aktion gesetzt. Vom AVRStudio aus kann ich das mit meinen U SB-Lab machen, das benimmt sich wie ein STK500. Bei PonyProg gibts dazu eine Möglichkeit "Security and Configration Bits" . . . uns so weiter.

Um weiter zu kommen müsstest Du schreiben, mit welchem Programmer - und mit welchem Programm - Du Deinen Controller flasht.

walterk
10.10.2009, 12:15
Danke für deine rasche Antwort.

Benutze den AVR mk2 Programmer USB, 6Pin auf 10Pin Adapter und das RN-Board mit ATmega32 als Hardware und als Software AVR Studio4.

Als Programmiersprache nutze ich C.

Der externen Quarz soll deswegen schwingen, weil der µC Daten von einer seriellen Schnittstellen Daten empfangen soll. Mit 16MHz ==> Baudrate 9600, 19200 und 38000 mit 0,2% Toleranz.

Hoffe dir alle relevanten Informationen gegeben zu haben.