void DA_OUT(unsigned CHANNEL,unsigned int RNG,unsigned int SPI_DATA)
{
unsigned char flag=0;
SPITXBUF=(CHANNEL<<14)|(RNG<<13)|(SPI_DATA<<5) ; //bit10,9~CHANNEL;bit8~RNG倍数
while(1)
{
flag=SPISTS&0x40;
if(flag==0x40) break;
}
SPIRXBUF=SPIRXBUF;/*虚读寄存器以清除中断标志*/
PFDATDIR=PFDATDIR & 0xFFDF; //LOAD=0,更新模拟信号输出
for(i=0;i<5;i++); //延时
PFDATDIR=PFDATDIR | 0x0020; //LOAD=1,锁存数据
} |