📄 main.c
字号:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dp512.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dp512"
unsigned char test0;
unsigned char test1;
unsigned char Result[28]={0};
unsigned int i=0;
/************* @ INI_SPI *********************/
void ini_spi(void){
SPI1BR=0b01110111; //clock divisor is 2
SPI1CR2=0b00000010;// SS is input
SPI1CR1=0b01001000;// as slave
//SPI1CR1=0b01010000;// as master
}
/*************** @@ SPI_WRITE *****************/
void putchar_spi1 (unsigned char cx)
{ unsigned char temp;
while(!(SPI1SR_SPTEF)); /* wait until write is permissible */
SPI1DR = cx; /* output the byte to the SPI */
while(!(SPI1SR_SPIF)); /* wait until write operation is complete */
// temp=SPI0SR;
temp=SPI1DR; // clear the spif flag.
}
/************** @@@ SPI_READ *******************/
unsigned char getchar_spi1(void)
{
unsigned char te;
//while(!(SPI1SR&)); /* wait until write is permissible */
//while(!(SPI1SR_SPTEF)); /* wait until write is permissible */
//SPI1DR = 0x00; /* trigger 8 SCK pulses to shift in data */
while(!(SPI1SR_SPIF)); /* wait until a byte has been shifted in */
//te=SPI1SR;
te=SPI1DR; // clear the spif flag.
return te; /* return the character */
}
/////////////////########*** MAIN ***###########/////////////////
void main()
{
DDRT_DDRT1=1; //PT1定义为输出
PTT_PTT1=0; //PT1输出为低
MODRR_MODRR5=1; //SPI1为PH0~PH3口
ini_spi();
PTT_PTT1=1; //PT1输出高产生上升沿触发采样中断
for(i=0;i<28;i++)
{
//putchar_spi1(222);
// putchar_spi1(1);
test0=getchar_spi1();
Result[i]=test0;
/*if(test0==0x55)
{
Result[i]=test0;
i++;
if(i>=10){i=0;}
//putchar_spi1(111);
//putchar_spi1(123);
} */
}
for(;;)
{asm(nop);}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -