你按下面配置吧,如果还没有时钟,检查你的硬件
/********************************************************
*
* 北京四维卓信电子有限公司
*
* 【OpenADSP开源社区】
*
********************************************************/
#include <cdefBF518.h>
#include <ccblkfn.h>
/****************************************************************************
* 名称 : Init_PLL
* 功能 : 配置处理器的内核与系统时钟
* 入口参数 :无
* 返回值 :无
****************************************************************************/
void Set_PLL(int pmsel,int pssel)
{
int new_PLL_CTL;
*pPLL_DIV = pssel;
asm("ssync;");
new_PLL_CTL = (pmsel & 0x3f) << 9;
*pSIC_IWR |= 0xffffffff;
if (new_PLL_CTL != *pPLL_CTL)
{
*pPLL_CTL = new_PLL_CTL;
asm("ssync;");
asm("idle;");
}
}
/****************************************************************************
* 名称 : Init_DDR
* 功能 : 初始化DDR
* 入口参数 :无
* 返回值 :无
****************************************************************************/
void Init_SDRAM(void)
{
*pEBIU_SDRRC = 0x00000817;
*pEBIU_SDBCTL = 0x00000025;
*pEBIU_SDGCTL = 0x0091998d;
ssync();
}
/****************************************************************************
* 名称 : Init_EBIU
* 功能 : 初始化EBIU
* 入口参数 :无
* 返回值 :无
****************************************************************************/
void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0x7bb07bb0;
*pEBIU_AMGCTL = 0x000f;
}
/****************************************************************************
* 名称 :InitPorts
* 功能 :初始化端口
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
init_port()
{
*pPORTG_FER |= PG11;
*pPORTG_FER &= ~PG1;
*pPORTG_MUX = 0x1000;
*pPORTH_FER = PH0|PH1|PH2|PH3|PH6; //set SPI1
*pPORTH_MUX = 0x0021;
*pPORTG_FER &= ~PG1;
*pPORTGIO_DIR &= ~PG1;
*pPORTGIO_INEN |= PG1;
*pPORTGIO_EDGE |= PG1 ;
*pPORTGIO_POLAR |= PG1;
*pPORTGIO_MASKA_SET |= PG1;
}
///////////////////////////////////////////
/////////////////////////////////////////////
#include <cdefBF518.h>
void SPIinit(void)
{
*pSPI1_BAUD=30;
*pSPI1_FLG |=FLS1;
*pSPI1_CTL = 0x1001|CPHA| CPOL;
*pSPI1_CTL = (*pSPI1_CTL | SPE);
}
unsigned char SPI1_byte_rw(unsigned char value)
{
unsigned char incoming=0;
while(!(*pSPI1_STAT & SPIF));
*pSPI1_TDBR = value;
while(*pSPI1_STAT & RXS)
incoming = *pSPI1_RDBR;
return(incoming);
}
int read_x(void)
{
int x_dat = 0;
int temp = 0;
delay(0xff);
*pSPI1_FLG &= ~FLG1;
delay(0xff);
SPI1_byte_rw(0x90);
delay(0xff);
SPI1_byte_rw(0x00);
x_dat = (SPI1_byte_rw(0x00)&0xff)<<1;
temp = (SPI1_byte_rw(0x00)&0xff)<<1;
x_dat = (x_dat<<8)|temp;
x_dat >>=4;
*pSPI1_FLG |= FLG1;
delay(0xff);
return x_dat;
}
int read_y(void)
{
int y_dat = 0;
int temp = 0;
delay(0xff);
*pSPI1_FLG &= ~FLG1;
delay(0xff);
SPI1_byte_rw(0xd4);
delay(0xff);
SPI1_byte_rw(0x00);
y_dat = (SPI1_byte_rw(0x00)&0xff)<<1;
temp = (SPI1_byte_rw(0x00)&0xff)<<1;
y_dat = (y_dat<<8)|temp;
y_dat>>=4;
*pSPI1_FLG |= FLG1;
delay(0xff);
return y_dat;
}
//////////////////////////////////
////////////////////////////////////
/********************************************************
*
* 北京四维卓信电子有限公司
*
* 【OpenADSP开源社区】
*
********************************************************/
#include <stdio.h>
#include <cdefBF518.h>
void main(void)
{
Set_PLL(16,4);
Init_EBIU();
init_port();
SPIinit();
delay(10000);
while(1)
{
tem_x = read_x();
tem_y = read_y();
}
}