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.