DSP综合实验4 联系客服

发布时间 : 星期日 文章DSP综合实验4更新完毕开始阅读

case 'x': Result*=Input_number;break; case '/': Result/=Input_number;break; }

Now_in=0; Last_Cal='/'; return(0); } cal_run:

if(keycode == '=') {

In_number[Now_in]='\\0';

Input_number=atof(In_number); switch(Last_Cal) {

case '+': Result+=Input_number;break; case '-': Result-=Input_number;break; case 'x': Result*=Input_number;break; case '/': Result/=Input_number;break; }

temp=fabs(Result);

if((temp >= 10000.))

sprintf(result,\结果%6.5E\ else

if(temp >= 0.0001)

sprintf(result,\结果.8f\ else

sprintf(result,\结果%6.5E\

size=strlen(result); if(size % 2 != 0) { result[size++]=' '; result[size]='\\0'; } mydelay();

lcd_printf(4,0,result,0); Now_in=0; Last_Cal='='; return(0); }

return(0); }

void lcd_clr(int iswait)

{ volatile int *addr_counter;

addr_counter = (int *)UART_COUNTER;

LCD_Buffer[2]=0xff; LCD_Buffer[3]=0xff; LCD_Buffer[4]=0xff;

LCD_Buffer[21]=0x88; LCD_Buffer[22]=0x99;

u_printf(&LCD_Buffer[0],23);

if(iswait == 1) /* if iswait==1, then must wait for send end, else return direct ! */ while( *addr_counter); }

int test_mem(int allmem) { int memok,test_ret;

pllx100();

/* change clk=100MHz */

switch(allmem) {

case 0: /* check all mem ! */

case 1: /* only check PROGRAM 18000h */ memok=chk_prog18000();

if(memok == 1)

test_ret=1; /* prog 18000h is ok ! */ else

test_ret=-1; /* prog 18000h maybe error */ break;

case 2: /* only check PROGRAM 28000h */ memok=chk_prog28000();

if(memok == 1)

test_ret=1; /* prog 28000h is ok ! */ else

test_ret=-2; /* prog 28000h maybe error */ break;

case 3: /* only check DATA SRAM 8000h */ memok=chk_data8000(); if(memok == 1)

test_ret=1; /* data 8000h is ok ! */ else

test_ret=-3; /* data 8000h maybe error */

break;

default:

test_ret=0; /* return 0, not check the mem ! }

pllx10();

return(test_ret); }

void test_DCmotor() { int i,j,k;

CtrlWord |= 0x1; /* make D0=1 */

port8000=CtrlWord; /* start DC MOTOR power */

i=lcd_printf(3,0,\摆动\ /* wait for send end ! */ for(i=0;i<20;i++) /* right and left */ {

porte000=0; mydelay(); porte000=1; mydelay(); }

i=lcd_printf(3,2,\正转\

porte000=1; /* rotate + for 5s */ for(i=0;i<25;i++) /* delay about 5s */ mydelay();

i=lcd_printf(3,4,\反转\ porte000=0;

for(i=0;i<25;i++) /* rotate - for 5s */ mydelay();

*/ for(i=0;i<4;i++) {

porte000=0; mydelay(); porte000=1; mydelay(); }

i=lcd_printf(3,6,\慢转\

for(k=0;k<4;k++) /* rotate slowly */ for(i=0;i<1000;i++)

{ porte000=1; for(j=0;j<6500;j++); porte000=0; for(j=0;j<1000;j++);

}

CtrlWord &= 0xfffe; /* make D0=0; */ port8000=CtrlWord; }

void test_stepmotor() { int motor=0xf,i,j,k;

i=lcd_printf(3,1,\反转. \

// portf000=1; motor=1;

for(i=0;i<5;i++) {

for(j=0;j<4;j++)

{

portf000=motor; /* send drive pluse to motor */ motor=motor<<1;

for(k=0;k<4;k++) /* delay */ mydelay(); if(motor == 0x10) motor=1; } }

i=lcd_printf(3,5,\正转. \