Make PMC handling slightly faster
This commit is contained in:
parent
d16ecc6129
commit
277ad664a2
@ -58,18 +58,8 @@ void pmc_event(struct Pmc * pmc) {
|
||||
static uint8_t state_data = 0;
|
||||
|
||||
uint8_t sts = pmc_status(pmc);
|
||||
if (!(sts & PMC_STS_OBF)) {
|
||||
switch (state) {
|
||||
case PMC_STATE_WRITE:
|
||||
DEBUG("pmc write: %02X\n", state_data);
|
||||
state = PMC_STATE_DEFAULT;
|
||||
pmc_write(pmc, state_data);
|
||||
// Send SCI for OBF=1
|
||||
pmc_sci_interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Read command/data if available
|
||||
if (sts & PMC_STS_IBF) {
|
||||
uint8_t data = pmc_read(pmc);
|
||||
if (sts & PMC_STS_CMD) {
|
||||
@ -146,4 +136,17 @@ void pmc_event(struct Pmc * pmc) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Write data if possible
|
||||
if (!(sts & PMC_STS_OBF)) {
|
||||
switch (state) {
|
||||
case PMC_STATE_WRITE:
|
||||
DEBUG("pmc write: %02X\n", state_data);
|
||||
state = PMC_STATE_DEFAULT;
|
||||
pmc_write(pmc, state_data);
|
||||
// Send SCI for OBF=1
|
||||
pmc_sci_interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -58,18 +58,8 @@ void pmc_event(struct Pmc * pmc) {
|
||||
static uint8_t state_data = 0;
|
||||
|
||||
uint8_t sts = pmc_status(pmc);
|
||||
if (!(sts & PMC_STS_OBF)) {
|
||||
switch (state) {
|
||||
case PMC_STATE_WRITE:
|
||||
DEBUG("pmc write: %02X\n", state_data);
|
||||
state = PMC_STATE_DEFAULT;
|
||||
pmc_write(pmc, state_data);
|
||||
// Send SCI for OBF=1
|
||||
pmc_sci_interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Read command/data if available
|
||||
if (sts & PMC_STS_IBF) {
|
||||
uint8_t data = pmc_read(pmc);
|
||||
if (sts & PMC_STS_CMD) {
|
||||
@ -146,4 +136,17 @@ void pmc_event(struct Pmc * pmc) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Write data if possible
|
||||
if (!(sts & PMC_STS_OBF)) {
|
||||
switch (state) {
|
||||
case PMC_STATE_WRITE:
|
||||
DEBUG("pmc write: %02X\n", state_data);
|
||||
state = PMC_STATE_DEFAULT;
|
||||
pmc_write(pmc, state_data);
|
||||
// Send SCI for OBF=1
|
||||
pmc_sci_interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -58,18 +58,8 @@ void pmc_event(struct Pmc * pmc) {
|
||||
static uint8_t state_data = 0;
|
||||
|
||||
uint8_t sts = pmc_status(pmc);
|
||||
if (!(sts & PMC_STS_OBF)) {
|
||||
switch (state) {
|
||||
case PMC_STATE_WRITE:
|
||||
DEBUG("pmc write: %02X\n", state_data);
|
||||
state = PMC_STATE_DEFAULT;
|
||||
pmc_write(pmc, state_data);
|
||||
// Send SCI for OBF=1
|
||||
pmc_sci_interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Read command/data if available
|
||||
if (sts & PMC_STS_IBF) {
|
||||
uint8_t data = pmc_read(pmc);
|
||||
if (sts & PMC_STS_CMD) {
|
||||
@ -146,4 +136,17 @@ void pmc_event(struct Pmc * pmc) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Write data if possible
|
||||
if (!(sts & PMC_STS_OBF)) {
|
||||
switch (state) {
|
||||
case PMC_STATE_WRITE:
|
||||
DEBUG("pmc write: %02X\n", state_data);
|
||||
state = PMC_STATE_DEFAULT;
|
||||
pmc_write(pmc, state_data);
|
||||
// Send SCI for OBF=1
|
||||
pmc_sci_interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user