Fixed problem in DeviceSettings::strParam, returned wrong string
[avr-sim.git] / src / TimerInterrupts.h
blobc6fae3dc5bf1cb3d852be55d8a2159be3252050a
1 #ifndef AVR_TIMERINTERRUPTS_H
2 #define AVR_TIMERINTERRUPTS_H
4 #include "Hardware.h"
6 namespace avr {
8 /**
9 * @author Tom Haber
10 * @date May 2, 2008
11 * @brief Timer interrupt hardware
13 * This class generates the interrupts for all timers.
15 class TimerInterrupts : public Hardware {
16 public:
17 TimerInterrupts(Bus & bus, unsigned char mask,
18 unsigned int bit0Vec, unsigned int bit1Vec,
19 unsigned int bit2Vec, unsigned int bit3Vec,
20 unsigned int bit4Vec, unsigned int bit5Vec,
21 unsigned int bit6Vec, unsigned int bit7Vec);
23 public:
24 bool attachReg(const char *name, IORegister *reg);
25 void regChanged( IORegister *reg );
26 bool finishBuild();
27 void beforeInvokeInterrupt(unsigned int vector);
29 private:
30 void checkForNewSetIrq(unsigned char tiac);
31 void checkForNewClearIrq(unsigned char tiac);
33 private:
34 unsigned char mask;
35 unsigned char tifrOld;
36 unsigned char timskOld;
38 unsigned int bit0Vec, bit1Vec,
39 bit2Vec, bit3Vec,
40 bit4Vec, bit5Vec,
41 bit6Vec, bit7Vec;
43 private:
44 IORegister *tifr;
45 IORegister *timsk;
50 #endif /*AVR_TIMERINTERRUPTS_H*/