500PPS(拍每秒),空载运行频率大于 900PPS。2407A 的通用 I/O 口 PWM11/IOPE5 控制电机的转动频率,TDIRB/IOPF4控制转动方向。
控制的方法是使用 DSP 通用定时器设置 PWM11/IOPE5 以一定的频率改变高低状态,输出方波,设置TDIRB/IOPF4为高电平则顺时针转动,低电平为逆时针转动。
四,实验程序
#include "2407c.h"
#include "scancode.h"
#define T46uS 0x0d40
void gp_init(void);
void Delay(unsigned int nTime);
void interrupt time(void);
char ConvertScanToChar(unsigned char cScanCode);
ioport unsigned int port8000;
ioport unsigned int port8001;
ioport unsigned int port8002;
ioport unsigned int port8007;
unsigned int uWork,nCount;
unsigned int pwm1[8]={ 0x8e,0x8c,0x8d,0x89,0x8b,0x83,0x87,0x86 };
unsigned int pwm2[8]={ 0x86,0x87,0x83,0x8b,0x89,0x8d,0x8c,0x8e };
int nAddStep,nStep;
main()
{
哈尔滨工业大学——DSP 原理与应用实验指导书
III-53
unsigned int nScanCode,uWork1,i;
unsigned char cKey;
asm(" setc INTM"); /* 关中断,进行关键设置时不允许发生中断,以免干扰 */
(*PIRQR0)=0;
(*EVAIFRA)=0x80;
*EVAIFRA = 0xffff;
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa; /* 关闭看门狗中断 */
*SCSR1=0x81fe; /* 设置DSP运行频率40m */
(*MCRB)=0;
nStep=0; nAddStep=1;
port8000=0; // 初始化ICETEK-CTR
port8000=0x80;
port8000=0x0;
port8007=0; // 关闭东西方向的交通灯
port8007=0x40; // 关闭南北方向的交通灯
uWork1=port8002;
port8007=0x0c3;
gp_init();
*IMR=0x3;
*IFR=0xffff;
asm(" clrc INTM");
while ( 1 )
{
if ( nCount>16 )
{
nCount=0;
nScanCode=port8001;
nScanCode&=0x0ff;
uWork=port8002;
if ( nScanCode!=0 )
{
if ( nScanCode==SCANCODE_Enter ) break;
哈尔滨工业大学——DSP 原理与应用实验指导书
III-54
else
{
cKey=ConvertScanToChar(nScanCode);
}
cKey=ConvertScanToChar(nScanCode);
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-29489-95.html
所以他只能干一些耍无赖撒泼的事情