Problem mit externem Oszillator

OP #1362482
Lesenswert?

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 #1362724
Lesenswert?

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.
#1362770
Lesenswert?

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 #1363588
Lesenswert?

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
#1364543
Lesenswert?

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
#1364646
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren