Problem mit externem Oszillator

OP #1362482
Hallo,

ich habe eine Problem mit meinem externen Oszillator am ATmega644p

Der externe Oszillator hat eine Frequenz von 11,0592MHz.

Doch wenn ich bei mir einen Port toggle um eine bestimmte Frequenz zu 
ermitteln, bekomme ich immer nur 125us heraus.

Hier der code:

[c]

#include <ioavr.h>

int itr;
int test[3];

int main( void )
{

  UBRR0L = 0x05;
  UBRR0H = 0x00;

  UCSR0B = 0x98;

  UBRR1L = 0x05;
  UBRR1H = 0x00;

  UCSR1B = 0x98;
  itr = 0;

  while(1) {

    while(1) {

     itr++;

     PORTB |= (1 << 4);

     if(itr == 1000) {
       itr = 0;
       PORTB ^= ( 1 << 4 );

     }

    }

}
  }
  return 0;
}

[c]

im anhang sind ncoh meine eisntellungen des controllers.
Angehängte Dateien:
Gast
Dafür musst du die entsprechenden Fuse Bits setzen (die Einstellungen 
kann man sich aus dem Datenblatt unter FUSE-Bits herausnehmen). Wo das 
Menü zum Einstellen der Fuse Bits beim JTAGICE ist kann ich dir nicht 
sagen.
Hallo,

Hans Müller schrieb:
> na aber wenn es doch auf intern eingestellt ist, ich aber einen externen
> oszillaitor dran hängen hab, wie ich die einstellungen am atmega ändern
> muss, dass es mit dem externen funktioniert.

wieso? laut Deinem ersten Bild stehst Du auf Ext. Crystal Osc., das 
stimmt doch so.

Der Hinweis bezog sich auf Dein 2. Bild: die Calibrier-Seite ist für den 
internen RC-Oszillator, also bei Deiner Fuseeinstellung werden diese 
Werte nicht benutzt.

Gruß aus Berlin
Michael
Gast
Hallo zusammen,

bei den neueren AVR's, wie der 664, ist im Neuzustand das CKDIV8-FUSE
gesetzt. Dh. der Takt egal ob intern oder extern wird durch 8 geteilt.
Aber VORSICHT mit den FUSE's - immer Datenblatt studieren!!

Gruß Didi
didi schrieb:
> Hallo zusammen,
>
> bei den neueren AVR's, wie der 664, ist im Neuzustand das CKDIV8-FUSE
> gesetzt. Dh. der Takt egal ob intern oder extern wird durch 8 geteilt.
> Aber VORSICHT mit den FUSE's - immer Datenblatt studieren!!
>
> Gruß Didi

Ja, da bin ich auch schon drüber gestolpert...

Kann man, bei gesetzer CKDIV8-FUSE, also einen 80Mhz-Oszillator 
anschliessen auch wenn der AVR nur 20Mhz "kann" ?

Gruß

Andreas
Hallo,

Uboot- Stocki schrieb:
> Kann man, bei gesetzer CKDIV8-FUSE, also einen 80Mhz-Oszillator
> anschliessen auch wenn der AVR nur 20Mhz "kann" ?

Naja, anschließen schon, ich denke aber, der AVR-interne Clock-Teiler 
wird wohl kaum 80MHz teilen, das hätte Atmel schon ins Datenblatt 
geschrieben...

Gruß aus Berlin
Michael

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.