📄 2407controlcompass.c
字号:
/* file name: spicom1.c */
/* SPI communication test */
#include<util.h>
#include<SCI.h>
void bad_trap(void)
{
while(1);
}
void main(void)
{
unsigned int i,j,test1,test2, ADRES1, ADRES2;
char msg[50];
DSPInit(PLLx1);
SCIInit();
SCISetBaud(9600);
// 阿 器飘 汲沥
SET_PF_OUT(BIT5|BIT6); // FOR DEBUGGING
SET(PORTF,BIT5);
CLEAR(PORTF,BIT6);
SET_PB_OUT(BIT4); // AD1 ENABLE
SET(PORTB,BIT4);
// EVA SETTING
EVA_ENABLE;
EVB_ENABLE;
//SPI Module setting
SPI_ENABLE;
CLEAR(SPICCR, BIT4); // SPI SW RESET
SET(MCRB, BIT5|BIT4|BIT3|BIT2);
SPICTL = 0x06; // 0000 0110 : MASTER MODE , TALK
SPIBRR = 0xF9; // 40kbps at 10Mhz ; BAUD = (CUPCLK/(SPIBRR+1))
SPICCR = 0x4F; // DATA LENGTH 16BIT; ad converter falling edge
SET(SPICCR, BIT7); // SPI SW RESET
SCIPrintf("SPI module test.\n");
i=0; j=0; ADRES1=0; ADRES2=0;
while(1)
{
TOGGLE(PORTF,BIT5|BIT6);
test1=0; test2=0;
CLEAR(PORTB,BIT4); //AD1 ENABLE
for(i=0; i<10; i++) j++;
SPITXBUF = 0xF000; //MSB FIRST FORMAT ; CHANNEL 0
for(i=0; i<10; i++) j++;
test1 = SPIRXBUF;
for(i=0; i<200; i++) j++;
SET(PORTB,BIT4); //AD1 DISABLE
for(i=0; i<100; i++) j++;
CLEAR(PORTB,BIT4); //AD1 ENABLE
for(i=0; i<10; i++) j++;
SPITXBUF = 0xD000; //MSB FIRST FORMAT ; CHANNEL 1
for(i=0; i<10; i++) j++;
test2 = SPIRXBUF;
for(i=0; i<200; i++) j++;
SET(PORTB,BIT4); //AD1 DISABLE
//ADRES1 = (test1&0x0FFF);
//ADRES2 = (test2&0X0FFF);
ADRES1 = (test1&0x0FFF)<<1;
ADRES2 = (test2&0x0FFF)<<1;
sprintf(msg,"test: %d %d\n",ADRES1,ADRES2);
SCIPrintf(msg);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -