Forum: Mikrocontroller und Digitale Elektronik Quarz zu langsam?


von Stefan (Gast)


Lesenswert?

Hallo zusammen,

ich habe hier einen Attiny2313 den ich mit einem externen Quarz arbeiten 
lassen will.

Auf dem Quarz steht folgendes:
EQZBJ
16.000M
18pF

Nach der Berechnung bin ich auf 2x 30pF für die Kondensatoren gekommen, 
habe allerdings nur 22pF da gehabt - soweit ich das verstanden habe 
sollte das funktionieren.

Ich habe nun ein Programm geschrieben welches in 1s die LEDs blinken 
lässt:
1
#define F_CPU 16000000UL
2
3
#define sbi(ADDRESS,BIT) ((ADDRESS) |= (1<<(BIT)))
4
#define cbi(ADDRESS,BIT) ((ADDRESS) &= ~(1<<(BIT))
5
6
#include <avr/io.h>
7
#include <util/delay.h>
8
#include <avr/interrupt.h>
9
10
ISR (TIMER1_COMPA_vect)
11
{
12
  static int cnt=0;
13
  
14
  if(cnt>0){
15
      PORTD=0xff;
16
      cnt=0;
17
  }else{
18
    PORTD=0x00;
19
    cnt++;
20
  }
21
22
}
23
24
void init(void)
25
{
26
  DDRD=0xff;
27
  PORTD=0x00;
28
  sbi(TCCR1B,WGM12); //ctc ocr1a
29
  
30
  sbi(TCCR1B,CS12);
31
  sbi(TCCR1B,CS10); // 1/1024
32
  OCR1A=15625; // 1 sek
33
  
34
  sbi(TIMSK, OCIE1A);
35
  
36
  sei();
37
}
38
39
int main(void)
40
{
41
  init();
42
43
  while(1)
44
  {
45
    _delay_ms(1);
46
  }
47
}

Allerdings wird der Interrupt nur alle 8s aufgerufen.
Die Fuses sind auf EXTXOSC_8MHZ_XX_14CK_0MS gestellt.

An was kann es denn liegen, dass das Programm langsam abläuft?

Grüße

von Peter II (Gast)


Lesenswert?

DIV8 fuse?

von neuer Gast (Gast)


Lesenswert?

ckdiv8 in den Fuses aktiviert?

von Stefan (Gast)


Lesenswert?

ja - danke, das wird es gewesen sein.

von (prx) A. K. (prx)


Lesenswert?

Stefan schrieb:
> Die Fuses sind auf EXTXOSC_8MHZ_XX_14CK_0MS gestellt.

Für Quarze fährt man mit langem Startup besser.

von Mike (Gast)


Lesenswert?

Stefan schrieb:
> ja - danke, das wird es gewesen sein.

Was passiert, wenn du das mal überprüfst?
Damit könntest du dir Gewissheit verschaffen.

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
Noch kein Account? Hier anmelden.