twl_wrapsdk/build/tests/os/alarm-1/ARM9/src/main.c
nakasima 5fd3c4e533 merge ARM9 and ARM7 tests.
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@53 4ee2a332-4b2b-5046-8439-1ba90f034370
2007-04-27 12:16:20 +00:00

165 lines
4.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*---------------------------------------------------------------------------*
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 ======*/