// Initialization from python (using py-uio):
// pruss.ecap.pwm.initialize( PERIOD ) where PERIOD (in PRU cycles) is max 2**32
struct Timestamp {
uint32_t major; // number of times the ecap counter has wrapped
uint32_t minor; // number of cycles since last time it wrapped
};
// note: total number of cycles (since ecap initialized) is major * PERIOD + minor
// Get timestamp.
// Must be called at least once every PERIOD cycles to ensure correct timekeeping.
struct Timestamp timestamp()
{
static struct Timestamp now = { 0, 0 };
uint32_t minor = CT_ECAP.TSCTR;
if( minor < now.minor ) // ecap counter has wrapped
++now.major;
now.minor = minor;
return now;
}
Comments