Ok sorry i have find some source references

which was helpful.
But i have some error that i don't explain....
Code:
#ifndef __TIMER_H__#define __TIMER_H__/* FUNCTION: GPTA_Timer_Init() * * Initialise and enable General Purpose Timer A0 to work like * a PIT. * * PARAM2: Prescaler value - sets the tick frequency to * (system clock/2) divided by 2^PCSR * * PARAM3: Modulo counter - sets the mumber of ticks per interrupt * * PARAM4: Interrupt handler * * RETURNS: none */#include "MCF52235.h"#define ADDRESS uint32voidGPTA_Timer_Init(uint8 PCSR, uint16 PMR, void (*handler)(void)){ // At 64MHz: // PCSR = 5 gives a tick per uS // PMR = 1000 gives an interrupt every 1ms uint8 ipl = MCF_INTC_ICR_IL(2) | MCF_INTC_ICR_IP(0); // Disable timer A MCF_GPTA_GPTSCR1 = 0; // Set up interrupt handler mcf52235_interrupt_init(44, ipl, handler); // /!\Error 2/!\ // Set modulo count // (= number of ticks per interrupt) MCF_GPTA_GPTC0 = PMR; // Tick frequency = (system clock/2) divided by 2^PCSR MCF_GPTA_GPTSCR2 = (uint8)(MCF_GPTA_GPTSCR2_PR(PCSR)); MCF_GPTA_GPTIOS = MCF_GPTA_GPTIOS_IOS0; MCF_GPTA_GPTIE = MCF_GPTA_GPTIE_CI0; MCF_GPTA_GPTFLG1 = MCF_GPTA_GPTFLG1_CF0; MCF_GPTA_GPTFLG2 = MCF_GPTA_GPTFLG2_TOF; // Enable timer A MCF_GPTA_GPTSCR1= 0x80; }/* FUNCTION: mcf52235_interrupt_init() * * Initialise an interrupt handler for an interrupt source * for INTC0. If the handler is a NULL pointer, then mask * this interrupt. * * PARAM1: Interrupt source (1..62) * * PARAM2: Interrupt level and priority * * PARAM3: Interrupt handler * * RETURNS: none */voidmcf52235_interrupt_init(uint8 source, uint8 ipl, void (*handler)(void)){ // /!\Error 1/!\ // Only for user defined vectors in INTC0 if ((source > 0) && (source < 63)) { // Interrupts should be disabled to avoid vector problems // and to ensure that a spurious interrupt exception can't // be generated. uint8 sysint =(uint8) asm_set_ipl(7); if (handler) { // Set interrupt priority level MCF_INTC0_ICR(source) =(uint8)(ipl & 0x3F); // Set vector mcf5xxx_set_handler(source+64, (ADDRESS)handler); // Clear mask for this handler if (source < 32) MCF_INTC0_IMRL &= ~(MCF_INTC_IMRL_INT(source) | MCF_INTC_IMRL_MASKALL); else { MCF_INTC0_IMRL &= ~(MCF_INTC_IMRL_MASKALL); MCF_INTC0_IMRH &= ~(MCF_INTC_IMRH_INT(source)); } } else { // Set vector mcf5xxx_set_handler(source+64, (ADDRESS)handler); // Set mask for this handler if (source < 32) { MCF_INTC0_IMRL |= MCF_INTC_IMRL_INT(source); } else { MCF_INTC0_IMRH |= MCF_INTC_IMRH_INT(source); } } // As you were... asm_set_ipl(sysint); }}/********************************************************************/#endif
Error generated:
Error1: identifier 'mcf2235_interrupt_init(...)' redeclared as 'void(unsigned char, unsigned char, void (*)())'
timer.h line 67 {
Error2: identifier 'mcf2235_interrupt_init(...)' was originally declared as 'int(...)'
timer line 34 mcf52235_interrupt_init(44, ipl, handler);
All support is welcome, thanks a bunch