/// <summary>
 /// Crates a new EEPROM Handler to enable EEPROM functionality.
 /// IMPORTANT: call dispose(); when it's no longer needed.
 /// </summary>
 /// <param name="_registerFileMap"></param>
 /// <param name="_eepromMemory"></param>
 public EEPROMHandler(Register.RegisterFileMap _registerFileMap, Data.EEPROMMemory _eepromMemory)
 {
     this.registerFileMap = _registerFileMap;
     this.eepromMemory = _eepromMemory;
     this.valueChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onValueChange);
     registerSelfWithRegisterFileMap();
 }
 public ProgramCounter(RegisterFileMap _registerFileMap)
 {
     this.registerFileMap = _registerFileMap;
     this.upperBits = new Data.DataAdapter<byte>();
     onPclChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onPclChange);
     registerFileMap.registerDataListener(onPclChangeListener, RegisterConstants.PCL_ADDRESS);
     initializeValue();
 }
Ejemplo n.º 3
0
 public Timer0(Register.RegisterFileMap _registerFileMap, PIC _pic)
 {
     tmr0Register = _registerFileMap.getAdapter(Register.RegisterConstants.TMR0_ADDRESS);
     optionRegister = _registerFileMap.getAdapter(Register.RegisterConstants.OPTION_REG_BANK1_ADDRESS);
     registerFileMap = _registerFileMap;
     internalCounter = 0;
     timerHandler = new Timer0Handler(_registerFileMap, this, _pic);
 }
        internal PortSerialization(Register.RegisterFileMap registerFileMap)
        {
            this.portA = registerFileMap.getAdapter(Register.RegisterConstants.PORTA_ADDRESS);
            this.portB = registerFileMap.getAdapter(Register.RegisterConstants.PORTB_ADDRESS);

            this.trisA = registerFileMap.getAdapter(Register.RegisterConstants.TRISA_BANK1_ADDRESS);
            this.trisB = registerFileMap.getAdapter(Register.RegisterConstants.TRISB_BANK1_ADDRESS);

            comPort.DataReceived += comPort_DataReceived;
        }
Ejemplo n.º 5
0
        public WDT(PIC _pic)
        {
            this.pic = _pic;

            optionRegister = pic.getRegisterFileMap().getAdapter(Register.RegisterConstants.OPTION_REG_BANK1_ADDRESS);
            optionRegister.DataChanged += onOptionRegisterChange;

            wdtTimer = new System.Timers.Timer();
            wdtTimer.Interval = calculateWdtInterval();
            wdtTimer.Elapsed += onWdtTimerElapsed;
            wdtTimer.AutoReset = false;
        }
        public InterruptHandler(PIC _pic, Register.RegisterFileMap _registerFileMap)
        {
            this.pic = _pic;
            this.registerFileMap = _registerFileMap;

            this.oldPortBValue = registerFileMap.Get(Register.RegisterConstants.PORTB_ADDRESS);
            this.oldIntconValue = registerFileMap.Get(Register.RegisterConstants.INTCON_ADDRESS);
            this.oldEecon1Value = registerFileMap.Get(Register.RegisterConstants.EECON1_BANK1_ADDRESS);

            this.valueChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onValueChange);
            this.portBValueChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onPortBValueChange);
            registerSelfWithRegisterFileMap();
        }
        public Timer0Handler(Register.RegisterFileMap _registerFileMap, Timer0.Timer0 _timer0, PIC _pic)
        {
            pic = _pic;
            this.registerFileMap = _registerFileMap;
            this.timer0 = _timer0;
            lastPortAValue = _registerFileMap.Get(Register.RegisterConstants.PORTA_ADDRESS);

            // instance delegates
            this.portAValueChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onPortAValueChange);
            this.tmr0RegisterChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onTMR0RegisterChanged);
            this.cycleEndListener = new PIC.OnCycleEnd(onCycleEnd);

            registerDelegates();
        }