making a library using timer.c

Hello,

First, please excuse me for my poor english.

I'm trying to make a clock library using timer.c.

By modify wiring.c & .h I have made a clock with Arduino : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1151887411. Now, I want to do it better by writing a library to generate precise delays using interrupts (at min vector 7). This library named "TicTac", I think, could be very useful for many users and projects.

HELP ! :cry:

First I'm try to do this :

[...]

#undef PI
#include "timer.h"

[...]

void TicTac::Start()
{

  // arrêt des fonctions PWM
  timer1PWMOff();

  // réglage du pré-diviseur de fréquence
  // TCNT1 sera incrémenté tous les 1024 tics
  // de l'horloge du micro-controlleur
  timer1SetPrescaler(TIMER_CLK_DIV1024);

  // liaison de l'interruption TIMER1OUTCOMPAREA_INT
  // avec la fonction TicTac
  timerAttach(TIMER1OUTCOMPAREA_INT, Bip);
  
  [...]
}

The compiler respond me :
lib\targets\libraries\TicTac\TicTac.o: In function `TicTac::Start()':

/cygdrive/e/Arduino/arduino-0004-win/arduino-0004/lib\targets\libraries\TicTac\TicTac.cpp:77: undefined reference to `timer1PWMOff()'

/cygdrive/e/Arduino/arduino-0004-win/arduino-0004/lib\targets\libraries\TicTac\TicTac.cpp:93: undefined reference to `timer1SetPrescaler(unsigned char)'

/cygdrive/e/Arduino/arduino-0004-win/arduino-0004/lib\targets\libraries\TicTac\TicTac.cpp:98: undefined reference to `timerAttach(unsigned char, void (*)())'
I think that the linker does not found the timer.o.

In second time I 'm trying to do something like that :
Replacing all the timer.c functions by mine's, including the ISR function.

[...]
ISR(SIG_OUTPUT_COMPARE1B)
{
  [...]
}

[...]

void TicTac::Start()
{

  // arrêt des fonctions PWM
  // timer1PWMOff();
      // turn off timer1 PWM mode
      cbi(TCCR1A,PWM11);
      cbi(TCCR1A,PWM10);
      // turn off channel A (OC1A) PWM output
      // set OC1A (OutputCompare action) to none
      cbi(TCCR1A,COM1A1);
      cbi(TCCR1A,COM1A0);
      // turn off channel B (OC1B) PWM output
      // set OC1B (OutputCompare action) to none
      cbi(TCCR1A,COM1B1);
      cbi(TCCR1A,COM1B0);
  
  // réglage du pré-diviseur de fréquence
  // TCNT1 sera incrémenté tous les 1024 tics
  // de l'horloge du micro-controlleur
  // timer1SetPrescaler(TIMER_CLK_DIV1024);
      outb(TCCR1B, (inb(TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER_CLK_DIV1024);

  // liaison de l'interruption TIMER1OUTCOMPAREA_INT
  // avec la fonction TicTac
  // timerAttach(TIMER1OUTCOMPAREA_INT, Bip);

  [...]
}

The compiler respond me :
C:\DOCUME~1\Benoit\LOCALS~1\Temp\build28293.tmp\timer.c.o: In function `__vector_7':

E:\Arduino\arduino-0004-win\arduino-0004\lib\targets\arduino\timer.c:458: multiple definition of `__vector_7'

lib\targets\libraries\TicTac\TicTac.o:/cygdrive/e/Arduino/arduino-0004-win/arduino-0004/lib\targets\libraries\TicTac\TicTac.cpp:54: first defined here

/cygdrive/e/Arduino/arduino-0004-win/arduino-0004/tools/avr/bin/../lib/gcc/avr/4.0.2/../../../../avr/bin/ld: Warning: size of symbol __vector_7' changed from 148 in lib\targets\libraries\TicTac\TicTac.o to 90 in C:\DOCUME~1\Benoit\LOCALS~1\Temp\build28293.tmp\timer.c.o Ok, that's right, __vector_7' was defined in timer.c.

How can I do ? Is somebody have any idea ?