#include <stdio.h>
#include <stdlib.h>
#include <piece.h>
#include "turbo.h"
unsigned char vbuff[128*88];
static unsigned char draw;
void pceAppInit( void )
{
pceLCDDispStop();
pceLCDSetBuffer( vbuff );
pceAppSetProcPeriod( 80 ); // 80ms毎に pceAppProc()を呼び出す
memset( vbuff, 0, 128*88 );
pceCPUSetSpeed(0);
pceLCDDispStart();
draw = 1;
TurboON();
}
void pceAppProc( int cnt )
{
static mode = 2, old_mode=-1;
static char name[4][8]={"48 MHz","24 MHz","12 MHz"," 6 MHz"};
int i,count=0;
unsigned long ct;
// 10 ms でいくつ数えられるかカウント
ct = pceTimerGetCount();
while ( pceTimerGetCount() < ct + 10 ){
count++;
}
// ボタンによる速度切り替え( 48MHz ~ 6MHz )
if ( (pcePadGet() & TRG_LF) && mode > 0 )mode--;
if ( (pcePadGet() & TRG_RI) && mode < 3 )mode++;
if ( mode != old_mode ){
old_mode = mode;
switch(mode){
case 0:
TurboON(); pceCPUSetSpeed(0); break;
case 1:
TurboOFF(); pceCPUSetSpeed(0); break;
case 2:
TurboOFF(); pceCPUSetSpeed(1); break;
case 3:
TurboOFF(); pceCPUSetSpeed(2); break;
}
}
// 結果を画面に出力
pceFontSetPos( 0, 10);
pceFontPrintf("%5d counts/10 ms",count);
pceFontSetPos( 64, 20);
pceFontPrintf("at %s",name[mode]);
pceLCDTrans();
// Bボタンで プログラム終了
if( pcePadGet() & PAD_B ){
pceAppReqExit(0);
}
}
void pceAppExit( void )
{
TurboOFF();
}
|