@floatsd
2016-06-09T15:32:57.000000Z
字数 3479
阅读 2516
note_DSP



if(cKey!=0&&cOldKey!=cKey)语句中的&&cOldKey!=cKey,这样才能实现连续加速和连续减速。
while (1){nScanCode=*(int *)0x108001; // 读扫描码nScanCode&=0x0ff; // 取扫描值的低8位uPort8000=*(int *)0x108002;if ( nScanCode!=0 ){if ( nScanCode==9 ) break;//按下9键退出程序else{cKey=nScanCode;//cKey赋值为扫描值并依照键盘选择进行调速if ( cKey!=0 ){cOldKey=cKey;switch ( cKey ){case 1: uN=10; break;case 2: uN=50; break;case 3: uN=60; break;case 4: uN=70; break;case 5: uN=80; break;case 6: uN=100; break;case7:uN=uN+5; //按下7占空比加5break;case8:uN=uN+5; //按下8占空比减5break;}}}}}
while (1){nScanCode=*(int *)0x108001;nScanCode&=0x0ff;if ( nScanCode!=0 ) //如果要限定扫描值为1-9,为什么要只判断是否非零{if ( nScanCode==9 ) break;else{cKey=nScanCode;//前面已经判断过nScanCode了,cKey是直接由nScanCode赋值,为什么还要判断一次同样的内容。if ( cKey!=0 ){cOldKey=cKey;switch ( cKey )...}}}}
思考题1:结合液晶显示控制实验,修改源程序,将所设定的占空比实时在液晶屏幕上显示。

CTRGR=0x80; // 初始化ICETEK-CTRCTRGR=0x0;CTRGR=0x80;CTRLR=0; // 关闭东西方向的交通灯CTRLR=0x40; // 关闭南北方向的交通灯uPort8000=CTRCLKEY;TurnOnLCD(); // 打开显示LCDCLS(); // 清除显示内存CTRLCDCMDR=LCDCMDSTARTLINE; // 设置显示起始行Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);f_init(0,0); //初始化LCD为00CTRLR=0xC0;CTRGR=0x81;Gpio_PortA();Gpio_PortB();nSpeed=T46uS;uN=60; nCount=nCount1=0; nDir=0; cKey=cOldKey=0;StartCpuTimer0(); //启动定时器
while (1){nScanCode=*(int *)0x108001; // 读扫描码nScanCode&=0x0ff; // 低8位uPort8000=*(int *)0x108002;//Delay(5);if ( nScanCode!=0 ){if ( nScanCode==9 ) break;else{cKey=nScanCode;if ( cKey!=0 /*&& cOldKey!=cKey*/ ){cOldKey=cKey;switch ( cKey ){case 1: uN=10; break;case 2: uN=50; break;case 3: uN=60; break;case 4: uN=70; break;case 5: uN=80; break;case 6: uN=100; break;case 7:uN=uN+5;nScanCode=0;break;case 8:uN=uN-5;nScanCode=0;break;}CTRGR=0x80; // 初始化ICETEK-CTRCTRGR=0x0;CTRGR=0x80;CTRLR=0; // 关闭东西方向的交通灯CTRLR=0x40;b=uN%10;a=(uN-b)/10; //得到占空比个位数和十位数f_init(a,b); //输入待显示十位数个位数CTRLR=0xC0;CTRGR=0x81;}}}CTRLR=0xC0;CTRGR=0x81;//Delay(4);}StopCpuTimer0();CTRGR=0;}

思考题2:电动机是一个电磁干扰源。电动机的启停还会影响电网电压的波动,它周围的电器开关也会引发火花干扰。因此,除了采用必要的隔离、屏蔽盒电路板合理布线等措施外,看门狗的功能就会显得格外重要。看门狗在工作时不断地监视程序运行的情况,一旦程序“跑飞”,会立刻使DSP复位。