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.
Hallo, Hans Müller schrieb: > wie stelle ich das dann um?? garnicht, am Quarz gibt es vom AVR nichts zu calibrieren. Verrate doch mal, was Du bei Deinem Programm eugentlich erwartest. Gruß aus Berlin Michael
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.
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
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
@ Uboot- Stocki (uboot-stocki) >Kann man, bei gesetzer CKDIV8-FUSE, also einen 80Mhz-Oszillator >anschliessen auch wenn der AVR nur 20Mhz "kann" ? Wahrscheinlich eher nicht. MFG Falk
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.