本文整理汇总了C++中MAKE_TIMER_TICKS函数的典型用法代码示例。如果您正苦于以下问题:C++ MAKE_TIMER_TICKS函数的具体用法?C++ MAKE_TIMER_TICKS怎么用?C++ MAKE_TIMER_TICKS使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MAKE_TIMER_TICKS函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BurnTimerUpdateYM3812
INT32 BurnTimerUpdateYM3812(INT32 nCycles)
{
INT32 nIRQStatus = 0;
nTicksTotal = MAKE_TIMER_TICKS(nCycles, nCPUClockspeed);
// bprintf(PRINT_NORMAL, _T(" -- Ticks: %08X, cycles %i\n"), nTicksTotal, nCycles);
while (nTicksDone < nTicksTotal) {
INT32 nTimer, nCyclesSegment, nTicksSegment;
// Determine which timer fires first
if (nTimerCount[0] <= nTimerCount[1]) {
nTicksSegment = nTimerCount[0];
} else {
nTicksSegment = nTimerCount[1];
}
if (nTicksSegment > nTicksTotal) {
nTicksSegment = nTicksTotal;
}
nCyclesSegment = MAKE_CPU_CYLES(nTicksSegment + nTicksExtra, nCPUClockspeed);
// bprintf(PRINT_NORMAL, _T(" - Timer: %08X, %08X, %08X, cycles %i, %i\n"), nTicksDone, nTicksSegment, nTicksTotal, nCyclesSegment, pCPUTotalCycles());
pCPURun(nCyclesSegment - pCPUTotalCycles());
nTicksDone = MAKE_TIMER_TICKS(pCPUTotalCycles() + 1, nCPUClockspeed) - 1;
// bprintf(PRINT_NORMAL, _T(" - ticks done -> %08X cycles -> %i\n"), nTicksDone, pCPUTotalCycles());
nTimer = 0;
if (nTicksDone >= nTimerCount[0]) {
if (nTimerStart[0] == MAX_TIMER_VALUE) {
nTimerCount[0] = MAX_TIMER_VALUE;
} else {
nTimerCount[0] += nTimerStart[0];
}
// bprintf(PRINT_NORMAL, _T(" - timer 0 fired\n"));
nTimer |= 1;
}
if (nTicksDone >= nTimerCount[1]) {
if (nTimerStart[1] == MAX_TIMER_VALUE) {
nTimerCount[1] = MAX_TIMER_VALUE;
} else {
nTimerCount[1] += nTimerStart[1];
}
// bprintf(PRINT_NORMAL, _T(" - timer 1 fired\n"));
nTimer |= 2;
}
if (nTimer & 1) {
nIRQStatus |= pTimerOverCallback(0, 0);
}
if (nTimer & 2) {
nIRQStatus |= pTimerOverCallback(0, 1);
}
}
return nIRQStatus;
}
示例2: BurnOPMTimerCallback
void BurnOPMTimerCallback(int c, double period)
{
pCPURunEnd();
if (period == 0.0) {
nTimerCount[c] = MAX_TIMER_VALUE;
return;
}
nTimerCount[c] = (int)(period * (double)TIMER_TICKS_PER_SECOND);
nTimerCount[c] += MAKE_TIMER_TICKS(pCPUTotalCycles(), nCPUClockspeed);
}
示例3: BurnTimerAttachH6280YM3812
INT32 BurnTimerAttachH6280YM3812(INT32 nClockspeed)
{
nCPUClockspeed = nClockspeed;
pCPUTotalCycles = h6280TotalCycles;
pCPURun = h6280Run;
pCPURunEnd = h6280RunEnd;
nTicksExtra = MAKE_TIMER_TICKS(1, nCPUClockspeed) - 1;
// bprintf(PRINT_NORMAL, _T("--- timer cpu speed %iHz, one cycle = %i ticks.\n"), nClockspeed, MAKE_TIMER_TICKS(1, nCPUClockspeed));
return 0;
}
示例4: BurnTimerAttachM6502YM3812
INT32 BurnTimerAttachM6502YM3812(INT32 nClockspeed)
{
nCPUClockspeed = nClockspeed;
pCPUTotalCycles = M6502TotalCycles;
pCPURun = M6502Run;
pCPURunEnd = M6502RunEnd; // doesn't do anything...
nTicksExtra = MAKE_TIMER_TICKS(1, nCPUClockspeed) - 1;
// bprintf(PRINT_NORMAL, _T("--- timer cpu speed %iHz, one cycle = %i ticks.\n"), nClockspeed, MAKE_TIMER_TICKS(1, nCPUClockspeed));
return 0;
}
示例5: BurnTimerAttachZet
int BurnTimerAttachZet(int nClockspeed)
{
nCPUClockspeed = nClockspeed;
pCPUTotalCycles = ZetTotalCycles;
pCPURun = ZetRun;
pCPURunEnd = ZetRunEnd;
nTicksExtra = MAKE_TIMER_TICKS(1, nCPUClockspeed) - 1;
// bprintf(PRINT_NORMAL, _T("--- timer cpu speed %iHz, one cycle = %i ticks.\n"), nClockspeed, MAKE_TIMER_TICKS(1, nCPUClockspeed));
return 0;
}
示例6: BurnOPLTimerCallbackYM3812
void BurnOPLTimerCallbackYM3812(INT32 c, double period)
{
pCPURunEnd();
if (period == 0.0) {
nTimerCount[c] = MAX_TIMER_VALUE;
// bprintf(PRINT_NORMAL, _T(" - timer %i stopped\n"), c);
return;
}
nTimerCount[c] = (INT32)(period * (double)TIMER_TICKS_PER_SECOND);
nTimerCount[c] += MAKE_TIMER_TICKS(pCPUTotalCycles(), nCPUClockspeed);
// bprintf(PRINT_NORMAL, _T(" - timer %i started, %08X ticks (fires in %lf seconds)\n"), c, nTimerCount[c], period);
}
示例7: BurnOPNTimerCallback
void BurnOPNTimerCallback(int /*n */, int c, int cnt, double stepTime)
{
pCPURunEnd();
if (cnt == 0) {
nTimerCount[c] = MAX_TIMER_VALUE;
// bprintf(PRINT_NORMAL, _T(" - timer %i stopped\n"), c);
return;
}
nTimerCount[c] = (int)(stepTime * cnt * (double)TIMER_TICKS_PER_SECOND);
nTimerCount[c] += MAKE_TIMER_TICKS(pCPUTotalCycles(), nCPUClockspeed);
// bprintf(PRINT_NORMAL, _T(" - timer %i started, %08X ticks (fires in %lf seconds)\n"), c, nTimerCount[c], stepTime * cnt);
}
示例8: BurnTimerSetOneshot
void BurnTimerSetOneshot(int c, double period)
{
pCPURunEnd();
if (period == 0.0) {
nTimerStart[c] = nTimerCount[c] = MAX_TIMER_VALUE;
// bprintf(PRINT_NORMAL, _T(" - timer %i stopped\n"), c);
return;
}
nTimerCount[c] = (int)(period * (double)(TIMER_TICKS_PER_SECOND));
nTimerCount[c] += MAKE_TIMER_TICKS(pCPUTotalCycles(), nCPUClockspeed);
// bprintf(PRINT_NORMAL, _T(" - timer %i started, %08X ticks (fires in %lf seconds)\n"), c, nTimerCount[c], period / 1000000.0);
}