mirror of
https://github.com/HarbourMasters/Starship.git
synced 2025-02-09 03:37:49 +03:00
osAiSetFrequency
This commit is contained in:
parent
92644c09aa
commit
af69318aa5
@ -1,3 +1,27 @@
|
|||||||
#include "common.h"
|
#include "global.h"
|
||||||
|
#include "hardware.h"
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/aisetfreq/osAiSetFrequency.s")
|
extern s32 osViClock;
|
||||||
|
|
||||||
|
s32 osAiSetFrequency(u32 freq) {
|
||||||
|
register u32 a1;
|
||||||
|
register s32 a2;
|
||||||
|
register float ftmp;
|
||||||
|
ftmp = osViClock / (float) freq + .5f;
|
||||||
|
|
||||||
|
a1 = ftmp;
|
||||||
|
|
||||||
|
if (a1 < 0x84) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
a2 = (a1 / 66) & 0xff;
|
||||||
|
if (a2 > 16) {
|
||||||
|
a2 = 16;
|
||||||
|
}
|
||||||
|
|
||||||
|
HW_REG(AI_DACRATE_REG, u32) = a1 - 1;
|
||||||
|
HW_REG(AI_BITRATE_REG, u32) = a2 - 1;
|
||||||
|
HW_REG(AI_CONTROL_REG, u32) = 1; // enable dma
|
||||||
|
return osViClock / (s32) a1;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user