?? samotor.c
字號:
#include "ICETEK-C6713-A.h"
int nAddStep,nStep,nCount;
main()
{
unsigned char dbScanCode;
char cKey;
nCount=nStep=0; nAddStep=1;
init_emif(); // 初始化emif
InitCTR(); // 初始化ICETEK-CTR
InitInterrupt();
*((unsigned short int *)0x0901f000e)= 0x0c2;
while ( 1 )
{
if ( nCount>16 )
{
nCount=0;
dbScanCode=GetKey();
if ( dbScanCode!=0 && dbScanCode!=0x0ff )
{
if ( dbScanCode==SCANCODE_Enter ) break;
else
{
cKey=ConvertScanToChar(dbScanCode);
if ( cKey=='4' ) nAddStep=1;
else if ( cKey=='6' ) nAddStep=-1;
}
}
}
}
CSR&=0xfffffffe; // 關中斷 GIE=0
TIMER1CTL&=0x0ffffff3f; // GO=0 /HLD=0 =>計數器暫停
*((unsigned short int *)0x0901f000e)= 0x0c0;
CloseCTR();
exit(0);
}
void interrupt Timer() //中斷響應函數
{
CTRLR=pwm[nStep];
nStep+=nAddStep;
if ( nStep<0 ) nStep=7;
else if ( nStep>7 ) nStep=0;
nCount++;
}
void InitInterrupt(void)
{
// 設置中斷控制寄存器
CSR&=0xfffffffe; // 關中斷 GIE=0
ISTP=0x00000c00; // 重置中斷向量表到0C00h
IMH=0x08000000; // 指定Timer1產生int15中斷
IML=0;
ICR=0xff; // 清除等待的中斷
IER=0x8003; // 使能int15中斷
// 設置定時器產生中斷信號的頻率
TIMER1PRD=0x1e84; // 定時器1的周期
TIMER1CTL=0x3c0; // 開始計數
CSR=CSR|1; // 開中斷
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -