#include "cpld.h"
#include "dwarfcore.h"
#include "types.h"

byte encctlImage;
byte encpwrImage;
byte outImage; 
byte sensorImage;

void cpld_io_init(void)
{
encctlImage = 0x0;
encpwrImage = 0x0;
outImage = 0x1f;
sensorImage = 0x0;
}

void updateSensorImage(void)
{
//enter with interrupts disabled
writeDWRF(DCORSENSOR,sensorImage);
_EINT();
}

void updateEncctlImage(void)
{
writeDWRF(DCORENCCTL,encctlImage);
_EINT();
}

void updateEncpwrImage(void)
{
writeDWRF(DCORENCPWR,encpwrImage);
_EINT();
}

void updateOutImage(void)
{
writeDWRF(DCOROUT,outImage);
_EINT();
}

void toggleOutImage(byte mask)
{
writeDWRF(DCOROUT,outImage^=mask);
_EINT();
}

