⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shakeme.cpp

📁 嵌入式开发库文件
💻 CPP
字号:
#include <nds.h>#include "ShakeMe.h"u16 ws;u8 SMReadREG(u8 addr){	u16 r;	*(vu16 *)(0x08000100 | (addr << 1)) = 0;	r = *(vu16 *)0x080001FE;	while(r & 1)		r = *(vu16 *)0x080001FE;	return(*(vu16 *)0x08000000);}void SMWriteREG(u8 addr, u8 value){	u16 r;	*(vu16 *)(0x08000000 + (addr << 1)) = value;	r = *(vu16 *)0x080001FE;	while(r & 1)		r = *(vu16 *)0x080001FE;}bool SMInserted(void){	return(SMReadREG(0x0F) == 0x3A);}u32 SMSetCtrlREG(u32 value){	if(*(vu16 *)0x080001FE & 1)return(1);	SMWriteREG(0x20, value);	SMWriteREG(0x21, value >> 8);	SMWriteREG(0x22, value >> 16);	if(SMReadREG(0x20) != (value & 0xFF))return(2);	if(SMReadREG(0x21) != ((value >> 8) & 0xFF))return(3);	if(SMReadREG(0x22) != ((value >> 16) & 0xFF))return(4);	return(0);}u32 SMGetCtrlREG(void){	if(*(vu16 *)0x080001FE & 1)return(0xFFFFFFFF);	return(SMReadREG(0x20) | (SMReadREG(0x21)<<8) | (SMReadREG(0x22)<<16));}void SMPowerOn(u16 host){	ws = *(vu16*)(0x04000204);	*(vu16*)(0x04000204) = (ws >> 8 << 8) | 0x7C | host; //set PHI to 16MHz	swiDelay(32);		//wait for stable clk	SMSetCtrlREG(SMGetCtrlREG() | SM_POWER_ON);}void SMPowerOff(void){	SMSetCtrlREG(SMGetCtrlREG() & SM_POWER_OFF_MASK);	*(vu16*)(0x04000204) = ws & 0xFF9F;}void SMEnterFastMode(void){	u16 r;		r = *(vu16 *)0x080001FE;	if(r & 2)return;	*(vu16 *)0x080001FE = r | 2;	r = *(vu16 *)0x080001FE;	while(!(r & 2))		r = *(vu16 *)0x080001FE;}void SMLeaveFastMode(void){	u16 r;		r = *(vu16 *)0x080001FE;	if(!(r & 2))return;	*(vu16 *)0x080001FE = r & 4;	r = *(vu16 *)0x080001FE;	while(r & 2)		r = *(vu16 *)0x080001FE;}bool SMIsFastMode(void){	return(*(vu16 *)0x080001FE & 2);}/*bool SMIsIRQEnabled(void){	return(*(vu16 *)0x080001FE & 4);}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -