Hallo,
irgendwie bringe ich das Zeug's nicht zum Laufen.
Möchte für beliebige Pin's (an denen jeweils LEDs hängen) bei Überlauf (IR) des Timer1, ein Toggeln realisieren. Also ganz normal bei Überlauf (ganz ohne Vergleich ...).
Das zweite Mal beim Vergleich einen IR bewerkstelligen, eigentlich eine Phasenkorrektem PWM mit Timer 1.
Nur die Konfig. macht mir ein wenig Probleme. Vielleicht könnt ihr den Code richtig stellen.
Für den Mega 16 bzw. 32 gibt es genug Beispielprogramme. Leider nicht für den Mega 8.
Danke
Papua
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
// Mega 8L
// Timer/Counter1 Overflow 
ISR (TIMER1_OVF_vect)
{
  PORTD ^= (1 << PD2);  // PD2 toggeln
}

// Timer/Counter1 Compare 
ISR (TIMER1_COMP_vect)
{
  PORTD ^= (1 << PD0);  // PD2 toggeln
}
int main()
{
 
 DDRD |= (1 << PD2) | (1 << PD0);
 PORTD |= (1 << PD2) | (1 << PD0);
// ***************************
// Konfig. PWM
// ***************************
 TIMSK |= (1 << OCIE1B) | (1 << TOIE1);                  // IRQ bei Compare Match
 OCR1BH = 128;                           // Vergleichswert einstellen
 OCR1BL = 0;
 sei();                                       // IRQs enable (Interrupt global einschalten)
 TCCR1A |= (1 << WGM11);          // CTC-Modus (Vergleichmodus)
 TCCR1B |= (1 << CS11);             // Prescaler: 1/8 (zB.: CPU-Takt 8000000/ Teiler 8)
 
 while (1) // endlos
 {
     // von hier aus möchte ich die Helligkeit steuern
 
      
 }
 return 0;
}