📄 main.c
字号:
/////////////////////////////////////////////////////////////
// EDU Lab -- SAMotor Ver1.01 //
// For CTR4.0 //
// SAMotor Contor by using TMS320VC5509A's Timer0 //
// All Rights opened and no onus //
// Write by Daniel Hawk //
// Realtime Co.ltd. //
// 2005.Jan //
/////////////////////////////////////////////////////////////
// Define Ioport About Timer0
ioport unsigned int *tim0;
ioport unsigned int *prd0;
ioport unsigned int *tcr0;
ioport unsigned int *prsc0;
// End of Define Ioport About Timer0
#include "myapp.h"
#include "ICETEK-VC5509-EDU.h"
#include "scancode.h"
void INTR_init( void );
void TIME_init(void);
int nCount,nStep,nAddStep;
unsigned int uTimPrd0;
unsigned int pwm2[8]={ 0x86,0x87,0x83,0x8b,0x89,0x8d,0x8c,0x8e };
main()
{
int sEnd;
unsigned char dbScanCode,tKey;
nCount=0; nStep=1;
sEnd=1,nAddStep=1;
uTimPrd0=0x1002;
CLK_init();
SDRAM_init();
InitCTR();
CTRLR=0x0c2;
TIME_init();
INTR_init();
do
{
if ( nCount>16 )
{
nCount=0;
dbScanCode=GetKey(); // Scan for Keyboard input
tKey=CTRCLKEY; // Clear Keyboard scan buffer
if ( dbScanCode!=0 && dbScanCode!=0x0ff )
{
switch(dbScanCode)
{
case SCANCODE_Enter: // Exit Program
sEnd=0;
break;
case SCANCODE_4: // Motor Turn Forward
nAddStep=1;
break;
case SCANCODE_6: // Motor Turn Backward
nAddStep=-1;
break;
case SCANCODE_Minus: // Motor Speed Down
uTimPrd0+=0x800;
if(uTimPrd0>=0x8000)
uTimPrd0=0x8002;
asm( " BSET INTM");
TIME_init();
asm(" BCLR INTM");
break;
case SCANCODE_Plus: // Motor Speed up
uTimPrd0-=0x800;
if(uTimPrd0<=0x1000)
uTimPrd0=0x1002;
asm( " BSET INTM");
TIME_init();
asm(" BCLR INTM");
break;
}
}
}
}while(sEnd);
exit(0);
}
void interrupt Timer()
{
CTRLR=pwm[nStep];
nStep+=nAddStep;
if ( nStep<0 ) nStep=7;
else if ( nStep>7 ) nStep=0;
nCount++;
}
void INTR_init( void )
{
IVPD=0x80;
IVPH=0x80;
IER0=0x10;
DBIER0 =0x10;
IFR0=0xffff;
asm(" BCLR INTM");
}
void TIME_init(void)
{
tim0 = (unsigned int *)0x1000;
prd0 = (unsigned int *)0x1001;
tcr0 = (unsigned int *)0x1002;
prsc0 = (unsigned int *)0x1003;
*tcr0 = 0x04f0;
*tim0 = 0x0;
*prd0 = uTimPrd0;
*prsc0 = 2;
*tcr0 = 0x00e0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -