mirror of
https://github.com/rvtr/twl_wrapsdk.git
synced 2025-10-31 06:11:10 -04:00
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@53 4ee2a332-4b2b-5046-8439-1ba90f034370
165 lines
4.2 KiB
C
165 lines
4.2 KiB
C
/*---------------------------------------------------------------------------*
|
||
Project: NitroSDK - OS - demos - alarm-1
|
||
File: main.c
|
||
|
||
Copyright 2003-2006 Nintendo. All rights reserved.
|
||
|
||
These coded instructions, statements, and computer programs contain
|
||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||
Company Ltd., and are protected by Federal copyright law. They may
|
||
not be disclosed to third parties or copied or duplicated in any form,
|
||
in whole or in part, without the prior written consent of Nintendo.
|
||
|
||
$Log: main.c,v $
|
||
Revision 1.14 2006/01/18 02:11:29 kitase_hirotake
|
||
do-indent
|
||
|
||
Revision 1.13 2005/11/21 10:53:49 kitase_hirotake
|
||
SVC_WaitVBlankIntr ‚ð OS_WaitVBlankIntr ‚É•Ï<E280A2>X
|
||
|
||
Revision 1.12 2005/02/28 05:26:19 yosizaki
|
||
do-indent.
|
||
|
||
Revision 1.11 2004/09/30 05:08:02 yada
|
||
add OS_InitAlarm(). to remove it was mistake
|
||
|
||
Revision 1.10 2004/09/28 12:21:26 yada
|
||
not call OS_InitAlarm() or OS_InitVAlarm() because OS_Init() called
|
||
|
||
Revision 1.9 2004/06/08 00:16:05 yada
|
||
add '#pragma unused()' for FINALROM
|
||
|
||
Revision 1.8 2004/04/15 06:51:12 yada
|
||
only arrange comment
|
||
|
||
Revision 1.7 2004/03/08 08:31:58 yada
|
||
fix top comment
|
||
|
||
Revision 1.6 2004/03/04 11:16:30 yada
|
||
only fix comment
|
||
|
||
Revision 1.5 2004/02/25 11:35:21 yada
|
||
systemClock<63>¨Tick ‚É”º‚¤•Ï<E280A2>X
|
||
|
||
Revision 1.4 2004/02/10 05:47:46 yasu
|
||
delete macro CODE32
|
||
|
||
Revision 1.3 2004/02/09 11:18:07 yasu
|
||
include code32.h
|
||
|
||
Revision 1.2 2004/02/05 07:09:03 yasu
|
||
change SDK prefix iris -> nitro
|
||
|
||
Revision 1.1 2004/02/03 11:25:17 yada
|
||
firstRelease
|
||
|
||
|
||
$NoKeywords: $
|
||
*---------------------------------------------------------------------------*/
|
||
#include <twl.h>
|
||
|
||
void VBlankIntr(void);
|
||
void alarmCallback(void *arg);
|
||
|
||
static OSAlarm alarm;
|
||
|
||
static BOOL called = FALSE;
|
||
|
||
static int pushCounter = 0;
|
||
|
||
static u16 keyData;
|
||
|
||
|
||
#define ALARM_COUNT (OS_MilliSecondsToTicks(200))
|
||
#define TEST_DATA 0x12345678
|
||
|
||
|
||
//================================================================================
|
||
/*---------------------------------------------------------------------------*
|
||
Name: TwlMain
|
||
|
||
Description: main
|
||
|
||
Arguments: None
|
||
|
||
Returns: None
|
||
*---------------------------------------------------------------------------*/
|
||
void TwlMain()
|
||
{
|
||
OS_InitPrintServer();
|
||
|
||
OS_Init();
|
||
GX_Init();
|
||
|
||
// ---- initialize tick system
|
||
OS_InitTick();
|
||
// ---- initialize alarm system
|
||
OS_InitAlarm();
|
||
|
||
//---- setup VBlank
|
||
(void)OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
||
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||
(void)OS_EnableIrq();
|
||
(void)GX_VBlankIntr(TRUE);
|
||
|
||
OS_TPrintf("Push [A] to start alarm.\n");
|
||
|
||
while (1)
|
||
{
|
||
OS_PrintServer();
|
||
|
||
OS_WaitVBlankIntr();
|
||
keyData = PAD_Read();
|
||
|
||
if (keyData & PAD_BUTTON_A && !called)
|
||
{
|
||
pushCounter++;
|
||
called = TRUE;
|
||
|
||
//---- setting alarm
|
||
OS_CreateAlarm(&alarm);
|
||
OS_SetAlarm(&alarm, ALARM_COUNT, &alarmCallback, (void *)TEST_DATA);
|
||
|
||
OS_TPrintf("set alarm\n");
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: alarmCallback
|
||
|
||
Description: callback for alarm interrupt
|
||
|
||
Arguments: arg : user setting argument
|
||
|
||
Returns: None
|
||
*---------------------------------------------------------------------------*/
|
||
void alarmCallback(void *arg)
|
||
{
|
||
#ifdef SDK_FINALROM
|
||
#pragma unused( arg )
|
||
#endif
|
||
OS_Printf(">>> called alarmCallback. arg=%x\n", arg);
|
||
OS_Printf(">>> PUSH=%d\n", pushCounter);
|
||
OS_Printf(">>> sp=%x\n", OSi_GetCurrentStackPointer());
|
||
called = FALSE;
|
||
}
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: VBlankIntr
|
||
|
||
Description: VBlank interrupt handler
|
||
|
||
Arguments: None
|
||
|
||
Returns: None
|
||
*---------------------------------------------------------------------------*/
|
||
void VBlankIntr(void)
|
||
{
|
||
//---- check interrupt flag
|
||
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
||
}
|
||
|
||
/*====== End of main.c ======*/
|