Probleme mit Interrupt routine

Hallo, ich bin neu hier und hab erst vor kurzem angefangen zu porgrammieren, kann mir evtl. jemand mit meinem Porgramm helfen?

Ich experimentiere zurzeit mit dem "Video Eperimenter -Shield von Video Experimenter: Arduino shield that lets you do all kinds of experiments with video" ,dem "Seeeduino Mega Seeeduino Mega | Seeed Studio Wiki(Da das Shiel nicht mit dem Arduino Mega 2560 funktioniert) und einem Drehgeber herum.

Die Position des Drehgeber soll auf einem Lcd zusammen mit dem Bild einer Überwachungskamera
angezeigt werden.

folgenden Fehler bekomme ich beim Kompilieren angezeigt.

Fehler:

WInterrupts.c.o (symbol from plugin): In function `attachInterrupt':

(.text+0x0): multiple definition of `__vector_1'

hier der code:

#include <TVout.h>
#include <fontALL.h>

volatile unsigned int counter=0;                                                
#define W 236                                                                                            
#define H 140  
 

TVout tv;
byte ledState = LOW;    


void setup() {

//Serial.begin (9600);

tv.begin(PAL, W, H);  
tv.select_font(font8x8);                                                                      
tv.fill(0);


pinMode(18, INPUT_PULLUP);                                                                      
pinMode(19, INPUT_PULLUP);                                                                      

attachInterrupt(5,A,RISING);
attachInterrupt(4,B,RISING);  


}





void A()                               
{                                
  if(digitalRead(19)==LOW)
  {
    counter++;
    
   }else
  counter--;

}


void B()                                
{                                     
if (digitalRead(18)==LOW)
{
  counter--;

}else
  counter++; 
 
}

void loop() {
 

cli();  
  TCCR1A = 0;
  // Enable timer1.  ICES0 is set to 0 for falling edge detection on input capture pin.
  TCCR1B = _BV(CS10);

  // Enable input capture interrupt
  TIMSK1 |= _BV(ICIE1);

  // Enable external interrupt INT0 on pin 2 with falling edge.

  EIMSK = _BV(INT0);
  EICRA = _BV(ISC01);
sei();

tv.print(0, 0, counter);

}


ISR(INT0_vect) 
{
  display.scanLine = 0;
}

Die Interrupt routinen des Drehgeber und der Timer Interrupt scheinen sich in die Quere zukommen...
Ich weiß leider nicht, wie ich diesen Fehler beheben kann.

Vielen Dank im Vorraus
Liebe Grüße

..und der Timer Interrupt scheinen sich in die Quere zukommen...

Nööö..
Der Timer hat einen anderen Vector.

Ich weiß leider nicht, wie ich diesen Fehler beheben kann.

Ich kann dir das sagen!

Entweder verzichtest du auf attachInterrupt()
Oder du verzichtest auf eigene Hardware Interrupts.

Beides zusammen geht nicht.

Verbesserung:

attachInterrupt(5,A,RISING);
attachInterrupt(4,B,RISING); 
attachInterrupt(digitalPinToInterrupt(2),NeueIsr,mode);
//ISR(INT0_vect) 
void NeueIsr()
{
  display.scanLine = 0;
}

Die TVout Biblothek ist sehr resoucenfressend. Da geht wenig nebenbei.
Grüße Uwe

Zunächst einmal vielen Dank für die schnelle Antwort.
Ich werde das morgen ausprobieren!

combie:
Entweder verzichtest du auf attachInterrupt()
Oder du verzichtest auf eigene Hardware Interrupts.

Beides zusammen geht nicht.

Die attachInterrupt Variante ist wie ich finde die weit aus angenehmere für Anfänger.

uwefed:
Die TVout Biblothek ist sehr resoucenfressend. Da geht wenig nebenbei.
Grüße Uwe

Darf ich fragen wie ?

RDax:
Darf ich fragen wie ?

Verstehe Deine Frage nicht.