📄 hpi.c
字号:
/*******************************************************************************/
#include "exp1_2407.h"
/*******************************************************************************/
ioport short port8008; //"读写HPIC寄存器第一字节"地址
ioport short port8009; //"读写HPIC寄存器第二字节"地址
ioport short port800A; //"读写HPID寄存器,HPIA自动增加第一字节"地址
ioport short port800B; //"读写HPID寄存器,HPIA自动增加第二字节"地址
ioport short port800C; //"读写HPIA寄存器第一字节"地址
ioport short port800D; //"读写HPIA寄存器第二字节"地址
ioport short port800E; //"读写HPID寄存器第一字节"地址
ioport short port800F; //"读写HPID寄存器第二字节"地址
unsigned int data_low=0x0000;
unsigned int data_high=0x0000;
unsigned int data=0x0000;
interrupt void nothing()
{
return;
}
void sys_ini() //系统初始化子程序
{
asm(" setc INTM"); //禁止所有中断
asm(" clrc SXM"); //抑制符号位扩展
asm(" clrc OVM"); //累加器中结果正常溢出
* SCSR1=0x0001; //配置时钟锁相为4倍频CLKOUT=4*7.3728=29.4912M
* WDCR=0x00EF; //禁止看门狗
}
void hpi_ini() //hpi口初始化子程序
{
port8008=0x0000; //清除HINT中断标志,发送的第一字节是低8位
port8009=0x0000;
}
void main()
{
sys_ini();
hpi_ini();
port800C=0x0010;
port800D=0x0000; //选中DSP2的1000h地址
port800E=0x0012;
port800F=0x0034; //将1234h写入DSP2的1000h地址单元
port800C=0x0010;
port800D=0x0001; //选中DSP2的1001h地址
port800E=0x0056;
port800F=0x0078; //将5678h写入DSP2的1001h地址单元
port800C=0x0010;
port800D=0x0002; //选中DSP2的1002h地址
port800E=0x009a;
port800F=0x00bc; //将9abch写入DSP2的1002h地址单元
port800C=0x0010;
port800D=0x0003; //选中DSP2的1003h地址
port800E=0x00de;
port800F=0x00f0; //将def0h写入DSP2的1003h地址单元
port800C=0x0010;
//port800D=0x0000; //选中DSP2的1000h地址
port800D=0x0001; //选中DSP2的1001h地址
data_high=port800E; //读取DSP2的1000h地址单元的高8位
data_low=port800F; //读取DSP2的1000h地址单元的低8位
data=(data_high<<8)|(data_low&0x00ff);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -