?? init.h
字號:
void System_Init()
{
asm(" setc INTM");//禁止所有中斷
asm(" setc SXM");//抑制符號位擴展
asm(" clrc OVM");//累加器中結果正常溢出
asm(" clrc CNF");//B0被配置為數據存儲空間
*SCSR1 = 0x00FE; //Page 28
*WDCR = 0x0E8;//禁止看門狗
*IFR = 0xFFFF;//清楚全部中斷標志,寫1清0。
//端口初始化
*MCRA = 0x0FDF;
*MCRB = 0xFFFC;
*MCRC = 0x0000;
*PADATDIR = 0xFFFF;
*PCDATDIR = 0x0200;
*PFDATDIR = 0xF300;
*IMR = 0x3F;//使能全部6組中斷
}
void XINT_Init()
{
//XINT初始化
*XINT1CR = 0x8003;//低優先級,下降沿中斷
*XINT2CR = 0x8003;//低優先級,下降沿中斷
}
void Timer_Init()
{
//Timer1-->PWM
*EVAIMRA |= 0x0200;//Page 135,使能下溢中斷
//Timer2-->QEP
*EVAIMRB = *EVAIMRB | 0x000C;//使能上溢中斷和下溢中斷
*T2PER =0XFFFF; //T2周期寄存器
*T2CON =0X1830; //設置T2計數模式為定向增減計數模式 時鐘源選擇正交編碼脈沖電路
*T2CNT =0X0000; //T2計數器
//Timer3-->自定義定時器
*EVBIMRA = *EVBIMRA | 0x0080;//周期中斷使能
*EVBIFRA = *EVBIMRA & 0x0080;//清周期中斷標志
*T3CON = 0x1300;//設置T3計數模式為連續增計數模式 預標定系數X/8
*T3PER = 0x3A98;//這里設置為5ms。計算方法: T3PER = 24*1000*(n毫秒)/(預標定系數8)
*T3CNT = 0x0000;
//Timer4用作AD采集的觸發輸入
*T4CON = 0x170C;
*T4PER = 0x75;
*T4CNT = 0x00;
*GPTCONB = 0x400;
*EVBIFRB = 0x0FFFF;
}
void Start_Timer(unsigned char which)
{
switch(which)
{
case 1:
*T1CON = *T1CON | 0x0040;//啟動定時器1
break;
case 2:
*T2CON = *T2CON | 0x0040;//啟動定時器2
break;
case 3:
*T3CON = *T3CON | 0x0040;//啟動定時器3
break;
case 4:
*T4CON = *T4CON | 0x0040;//啟動定時器4
break;
default:
;
}
}
void Set_LED(unsigned int led_data)
{
*PEDATDIR = 0xFF00 + (0x00FF & (~led_data));
}
UINT Get_Group_Key()
{
return (0x000F & ((*PBDATDIR & 0x00F0)>>4));
}
void SPDU_Define()
{
UINT i,j = 0;
for(i=0;i<SPDU_Amount;i++)
{
for(j=0;j<8;j++)
{
SPDU[i].Data[j] = 0;
SPDU[i].Ver_Data[j] = 0;
}
}
//------------------------------------------
SPDU[0].ID = 0xAA00;
//加速踏板
SPDU[0].Data_Def[0].Offset = 0;
SPDU[0].Data_Def[0].Precis = 0.0001;
//制動踏板
SPDU[0].Data_Def[1].Offset = 0;
SPDU[0].Data_Def[1].Precis = 0.0001;
//磁粉制動器制動強度
SPDU[0].Data_Def[2].Offset = 0;
SPDU[0].Data_Def[2].Precis = 0.0001;
SPDU[0].Data_Def[3].Offset = 0;
SPDU[0].Data_Def[3].Precis = 1;
SPDU[0].Data_Def[4].Offset = 0;
SPDU[0].Data_Def[4].Precis = 1;
SPDU[0].Data_Def[5].Offset = 0;
SPDU[0].Data_Def[5].Precis = 1;
SPDU[0].Data_Def[6].Offset = 0;
SPDU[0].Data_Def[6].Precis = 1;
SPDU[0].Data_Def[7].Offset = 0;
SPDU[0].Data_Def[7].Precis = 1;
//------------------------------------------
SPDU[1].ID = 0xAA01;
SPDU[1].Data_Def[0].Offset = 0;
SPDU[1].Data_Def[0].Precis = 1;
SPDU[1].Data_Def[1].Offset = 0;
SPDU[1].Data_Def[1].Precis = 1;
SPDU[1].Data_Def[2].Offset = 0;
SPDU[1].Data_Def[2].Precis = 1;
SPDU[1].Data_Def[3].Offset = 0;
SPDU[1].Data_Def[3].Precis = 1;
SPDU[1].Data_Def[4].Offset = 0;
SPDU[1].Data_Def[4].Precis = 1;
SPDU[1].Data_Def[5].Offset = 0;
SPDU[1].Data_Def[5].Precis = 1;
SPDU[1].Data_Def[6].Offset = 0;
SPDU[1].Data_Def[6].Precis = 1;
SPDU[1].Data_Def[7].Offset = 0;
SPDU[1].Data_Def[7].Precis = 1;
//------------------------------------------
SPDU[2].ID = 0x0002;
//------------------------------------------
SPDU[3].ID = 0x0003;
//------------------------------------------
SPDU[4].ID = 0x0004;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -