Board logo

标题: 求一个MC9S08AC60的通过SPI控制信号收发的程序 [打印本页]

作者: dalaohu2050    时间: 2010-3-24 15:20     标题: 求一个MC9S08AC60的通过SPI控制信号收发的程序

求一个MC9S08AC60的通过SPI控制信号收发的程序
作者: dalaohu2050    时间: 2010-3-24 15:28

void Init_Clock(){
FCDIV = 1;                    //时钟分频器
SYNR = 2;                     //时钟合成器
while(!(CRGFLG&0X08)); //倍频时钟     PLLCLK=8M*3=24M
SMCLK|= 0x80;             //CPU总线时钟 24/2=12M
}
/********************/
/*SPI初始化程序*/
/*******************/
void SPI_Init(void) {
MODRR   = 0x00;        //使用PS4-PS7做SPI0
SPI0CR1 = 0x50;        //SP使能,主机方式,上升沿采样下降沿结束,先传高位MSB,时钟相位=0
SPI0CR2 = 0x00;        //ss端不做输出使能
SPI0BR = 0x20;        //12/6=2M SPI波特率
PTS_PTS7 =1;          //PS7口做/ss片选端并设置高电平
DDRS_DDRS7=1;       //PS7做/ss端口,置为输出口,并将1输出
}
/***************************************/
/*                                             */
/*    SPI发送一个数据子程序     */
/*                                              */
/***************************************/
void SPI_Send(unsigned char data) {
SPI0DR = data;
while(!(SPI0SR&0x20));
}
/***************************************/
/*                                              */
/*    SPI接收一个数据子程序   */
/*                                            */
/**************************************/      
unsigned char SPI_Receive() {
while(!(SPI0SR&0x80));
return(SPI0DR);
}





用codewarrior6.3编译时,有3个错误,
SYNR = 2;                     //时钟合成器
while(!(CRGFLG&0X08)); //倍频时钟     PLLCLK=8M*3=24M                    
这2个地方有错误,请教下高手怎么改




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0