📄 sys.c
字号:
#include "sys.h"
typedef volatile struct sys_reg SYS_REG_STRUCT;
SYS_REG_STRUCT * sys_reg_ptr;
void dsp_setup()
{
unsigned int temp=0;
asm (" clrc CNF "); //B0区被配置为数据空间
/*––––––––––––––––––––––––*/
/* Disable watchdog timer */
/*––––––––––––––––––––––––*/
temp = WDCR;
temp = temp | 0x68;
WDCR = temp;
}
void set_system(void)
{
unsigned int temp=0;
temp = SCSR1;
temp |= (ADC_CLKEN | SCI_CLKEN | EVB_CLKEN | EVA_CLKEN);
//temp |= (ADC_CLKEN | SCI_CLKEN | EVB_CLKEN );
SCSR1 = temp;
}
void set_pll( void )
{
unsigned int temp=0;
temp = SCSR1;
temp &= 0xF1FF;
temp |= CLKPS_2; //
SCSR1 = temp;
// wait_ms(200);
}
void disable_interrupts()
{
asm (" setc INTM");
}
void enable_interrupts()
{
IFR = 0xFFFF; /* Clear pending interrupts */
IMR = 0x003F; /* Enable all CPU Interrupts: */
asm (" clrc INTM "); /* Global interrupt enable */
}
void sysinit(void)
{
// sys_reg_ptr-> SCSR1=0x0;
// sys_reg_ptr-> SCSR2=0x0;
disable_interrupts();
dsp_setup();
set_pll();
set_system();
enable_interrupts();
}
unsigned int wait_us(unsigned int delay_val )
{
unsigned int temp,i;
temp = delay_val/4;
for (i=0;i<temp;i++)
{
i=i;
}
return;
}
unsigned int wait_ms(unsigned int delay_val )
{
unsigned int i;
for ( i = 0; i < delay_val; i++ )
{
wait_us(970);
}
}
unsigned int wait_second(unsigned int delay_val )
{
unsigned int i;
/* unsigned int ms_ctr; */
for ( i = 0; i < delay_val; i++ )
{
wait_ms(995);
}
}
unsigned int wait_minute(unsigned int delay_val )
{
unsigned int i;
/* unsigned int ms_ctr; */
for ( i = 0; i < delay_val; i++ )
{
wait_ms(60);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -