Forum: Mikrocontroller und Digitale Elektronik atmega48 - 16bit Timer springt nicht an


von AT16 (Gast)


Lesenswert?

Hallo,

ich sitz grad auf der Leitung, der 16bit-Timer beim Atmega will einfach 
nicht:


TIMSK1 |= (1<<OCIE1A);
OCR1AH=0;
OCR1AL=0;
TCCR1A=0;
TCCR1B |= (1<<CS10);
TCNT1H=0;
TCNT1L=0;

[...]

ISR(SIG_OUTPUT_COMPARE1A)
{
PORTD|=(1<<PD4); //Led
}

Naja, die Led leuchtet nicht...

Wo könnte der Fehler liegen?

Danke
mfg

AT16
von Philipp B. (philipp_burch)


Lesenswert?

LED gegen Vcc angeschlossen?
sei(); vergessen?
DDRD4 kein Ausgang?
von tobi (Gast)


Lesenswert?

sei()?
code-Tags?
alter Int-Vectorname?
von Karl H. (kbuchegg)


Lesenswert?

zeig das ganze Program
von AT16 (Gast)


Lesenswert?

Nein, das passt alles, beim Timer 0 funktionierts...
Danke
von spess53 (Gast)


Lesenswert?

HI

>OCR1AH=0;
>OCR1AL=0;

MfG Spess
von AT16 (Gast)


Lesenswert?

Wie ist das gemeint?
von AT16 (Gast)


Lesenswert?

Hier die main:

int main(void)
{
  DDRD=0xFF;
  TIMSK0 |= (1<<OCIE0A);
  OCR0A=0;
  TCCR0B |= (1<<CS00);
  TCNT0=0;

  TIMSK1 |= (1<<OCIE1A);
  OCR1AH=0;
  OCR1AL=0;
  TCCR1A=0;
  TCCR1B |= (1<<CS10);

  TCNT1H=0;
  TCNT1L=0;

  cli();
  sei();
  while(1){};
}

ISR(SIG_OUTPUT_COMPARE1A)
{
//led
}

ISR(SIG_OUTPUT_COMPARE0A)
{
//led
}
von spess53 (Gast)


Lesenswert?

Hi

Wozu ein Compare-Interrupt, wenn das zusändige Register 0 ist.

>Nein, das passt alles, beim Timer 0 funktionierts...

Halte ich für ein Gerücht.

MfG Spess
von Karl H. (kbuchegg)


Lesenswert?

spess53 schrieb:
> Hi
>
> Wozu ein Compare-Interrupt, wenn das zusändige Register 0 ist.

Der Compare Match müsste aber trotzdem ausgelöst werden.
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.