Gast
#2369970
Hallo, ich hab hier nen Arduino von Watterott mit nem 328 und programmier ihn in C. Auf dem Schaltplan den ich hab ist jedoch ein Mega8 eingezeichnet. Grummel. Gibt's irgendwo nen besseren Plan? Auf dem Plan läuft ein Mega8 mit 16Mhz. Das Quarz auf meinem Board scheint etwa Baugröße 0804 zu sein, jedenfalls ist es so klein, daß ich nichts darauf lesen kann. Hab versucht, mit meinem Rigol mir den Quarztakt anzuschauen; nichts feststellbar, null Pegel. Ist die Eingangskapazität an meinem Präzisionsgerät zu groß...? Punkt 1) Haben alle Arduinos, also auch der aktuelle Watterott-Arduino, einem 16 MHz Quarz? Es würde zumindest Sinn machen... Punkt 2) Wenn ich eine LED per T1-Interrupt umschalten lasse, stelle ich fest daß die Taktfrequenz nicht stimmen kann. // Arduino Hardware läuft vermutlich mit 16MHz #define F_CPU 16000000UL //hab's mit _delay_ms(1000) getestet, damit stimmt's wohl. Verläßlich? // TCNT1H and TCNT1L – Timer/Counter1 TCNT1 = 0x8000; // TCCR1B – Timer/Counter1 Control Register B // CS12 CS11 CS10 untere 3 bits // 1 0 0 Takt/256 TCCR1B = 0b00000100; Kurze Rechnung: xFFFF- x8000= x7FFF x7FFF/256 = ca 128 128 => 1/128sek Umschaltzeit Die in der ISR umgeschaltete LED geht jedoch ca 2x/sek an und aus, dh. irgendwas ist viiiel zu langsam. Nach einigem hin und her habe ich todesmutig versucht die Fuses für den Osc zu ändern. Ich werde aus meiner Anzeige aber nicht schlau draus. Hab hier AVR Studio5, das ist eingestellt: BODLEVEL = 2V7 RSTDISBL = [ ] DWEN = [ ] SPIEN = [X] WDTON = [ ] EESAVE = [X] BOOTSZ = 256W_3F00 BOOTRST = [X] CKDIV8 = [ ] CKOUT = [ ] SUT_CKSEL = EXTFSXTAL_16KCK_14CK_65MS EXTENDED = 0xFD (valid) HIGH = 0xD6 (valid) LOW = 0xF7 (valid) Und nu?