/* * Timer1.cpp * * Created on: Mar 26, 2012 * Author: Realisations */ #include "Timer0.h" bool ledState_ = false; ISR(TCC0_OVF_vect, ISR_BLOCK) { if (ledState_) { ledState_ = false; PORTB.OUT |= 0x01; } else { ledState_ = true; PORTB.OUT &= ~0x01; } } Timer0::Timer0() { TCC0.CTRLA = TC_CLKSEL_DIV1_gc; //timer setté à clock/4 //timer ON TCC0.INTCTRLA = TC_OVFINTLVL_MED_gc; //active interruption on overflow, priotité low TCC0.PERL = 0xff; //valeur pour un overflow TCC0.PERH = 0xff; //dois toujours écrire PERL avant PERH (opération atomique en passant par un buffer) TCC0.CNTL = 0x00; //initialise le compteur à 0 TCC0.CNTH = 0x00; //dois toujours écrire CNTL avant PERH (opération atomique en passant par un buffer) //interruption //setting the global interrupt enable bit (I-bit) in the CPU Status Register //enable interrupt level PMIC.CTRL |= PMIC_MEDLVLEN_bm; //active les low levels interrupts dans le PMIC SREG |= CPU_I_bm; //sei(), Global Interrupt Enable } Timer0::~Timer0() { }