this is my timer.h
#ifndef timer4_h
#define timer4_h
#include "WProgram.h"
enum TIMERSTATE {
MARCHE,
ARRET,
FINI
};
class TIMER {
public:
TIMER(int ledPin);
void TIM_Init(void);
void TIM_Stop(void);
void TIM_Start (void);
void TIM_Set(unsigned long ulTempo);
struct Timer {
enum TIMERSTATE eEtat ;
unsigned long ulValue ;
unsigned long ulTempo ;
} ;
enum TIMERSTATE TIM_GetState(void) ;
private:
int _ledPin;
struct Timer gstTimer;
};
#endif
this is my timer.cpp
#include "timer4.h"
#include "WProgram.h"
TIMER::TIMER (int ledPin){
_ledPin = ledPin;
pinMode(ledPin, OUTPUT);
}
void TIMER::TIM_Init(void){
ASSR = 0 ; // Internal clock
TCCR2A = 0 ; // Normal mode pour le timer2
TCCR2B = 4 ; // Prescaler = 64 + Normal Mode
TIMSK2 = 1 ; // Valid interrupt on TOIE2
}
void TIMER::TIM_Stop (void){
gstTimer.eEtat = ARRET ;
}
void TIMER::TIM_Start(void){
gstTimer.eEtat = MARCHE ;
}
void TIMER::TIM_Set(unsigned long ulTimer){
gstTimer.ulValue = 0 ;
gstTimer.ulTempo = ulTimer ;
}
enum TIMERSTATE TIMER::TIM_GetState(void) {
return gstTimer.eEtat ;
}
ISR ( TIMER2_OVF_vect ){
if (gstTimer.eEtat == MARCHE) {
gstTimer.ulValue ++ ;
if (gstTimer.ulValue >= gstTimer.ulTempo) {
gstTimer.eEtat = FINI ;
gstTimer.ulValue = 0 ;
}
}
}
and this is my main programme
#include <timer4.h>
const int ledPin = 13;
int iEtat ;
int i ;
TIMER monTIMER = TIMER(ledPin);
void setup(){
pinMode (13,OUTPUT); //declarer le pin 13 comme output(LED)
iEtat = 0 ;
digitalWrite (13,iEtat);
monTIMER.TIM_Init() ;
monTIMER.TIM_Stop() ;
monTIMER.TIM_Set(5000) ;
monTIMER.TIM_Start() ;
}
void loop(){
enum TIMERSTATE EtatDuTimer ;
while(1) {
digitalWrite (13,iEtat);
EtatDuTimer = monTIMER.TIM_GetState() ;
if(EtatDuTimer == FINI) {
iEtat = ! iEtat ;
digitalWrite (13,iEtat);
monTIMER.TIM_Start() ;
}
}
}
and the problem is when i compiled this program, there r an error..can someone help me with this please..