WIP: burst mode
This commit is contained in:
parent
06e226e9c8
commit
ae4379199c
@ -37,6 +37,8 @@ void pmc_event(struct Pmc * pmc) {
|
||||
static enum PmcState state = PMC_STATE_DEFAULT;
|
||||
static uint8_t state_data[2] = {0, 0};
|
||||
|
||||
uint16_t burst_timeout;
|
||||
for (burst_timeout = 1; burst_timeout > 0; burst_timeout--) {
|
||||
uint8_t sts = pmc_status(pmc);
|
||||
if (sts & PMC_STS_IBF) {
|
||||
uint8_t data = pmc_read(pmc);
|
||||
@ -53,6 +55,8 @@ void pmc_event(struct Pmc * pmc) {
|
||||
break;
|
||||
case 0x82:
|
||||
DEBUG(" burst enable\n");
|
||||
// Run pmc_event in a tight loop for PMC_TIMEOUT iterations
|
||||
burst_timeout = PMC_TIMEOUT;
|
||||
// Set burst bit
|
||||
pmc_set_status(pmc, sts | (1 << 4));
|
||||
// Send acknowledgement byte
|
||||
@ -60,6 +64,8 @@ void pmc_event(struct Pmc * pmc) {
|
||||
break;
|
||||
case 0x83:
|
||||
DEBUG(" burst disable\n");
|
||||
// Exit pmc_event tight loop
|
||||
burst_timeout = 0;
|
||||
// Clear burst bit
|
||||
pmc_set_status(pmc, sts & ~(1 << 4));
|
||||
break;
|
||||
@ -105,4 +111,5 @@ void pmc_event(struct Pmc * pmc) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user