📄 pwmdispose.c
字号:
#define EXT_PWMDISPOSE_GLOBALS
#include "includes.h"
void PwmInitial(void)
{
unsigned char lcv_i;
for(lcv_i=0;lcv_i<32;lcv_i++)
{
PulseDispose[lcv_i].PwmPulse=0x7f;
}
}
/************************************************************
Function Name: T2Init
Function: Timer0 initial
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void PwmPortInitial(void)
{
// PulseDispose[0].PwmPulse=0x14;
PulseDispose[0].Pwm0=0xFE;
PulseDispose[0].Pwm7=0xFF;
PulseDispose[0].Pwm15=0xFF;
PulseDispose[0].Pwm23=0xFF;
// PulseDispose[1].PwmPulse=0x15;
PulseDispose[1].Pwm0=0xFD;
PulseDispose[1].Pwm7=0xFF;
PulseDispose[1].Pwm15=0xFF;
PulseDispose[1].Pwm23=0xFF;
// PulseDispose[2].PwmPulse=0x20;
PulseDispose[2].Pwm0=0xFB;
PulseDispose[2].Pwm7=0xFF;
PulseDispose[2].Pwm15=0xFF;
PulseDispose[2].Pwm23=0xFF;
// PulseDispose[3].PwmPulse=0x15;
PulseDispose[3].Pwm0=0xF7;
PulseDispose[3].Pwm7=0xFF;
PulseDispose[3].Pwm15=0xFF;
PulseDispose[3].Pwm23=0xFF;
// PulseDispose[4].PwmPulse=0x14;
PulseDispose[4].Pwm0=0xEF;
PulseDispose[4].Pwm7=0xFF;
PulseDispose[4].Pwm15=0xFF;
PulseDispose[4].Pwm23=0xFF;
// PulseDispose[5].PwmPulse=0x00;
PulseDispose[5].Pwm0=0xDF;
PulseDispose[5].Pwm7=0xFF;
PulseDispose[5].Pwm15=0xFF;
PulseDispose[5].Pwm23=0xFF;
// PulseDispose[6].PwmPulse=0x00;
PulseDispose[6].Pwm0=0xBF;
PulseDispose[6].Pwm7=0xFF;
PulseDispose[6].Pwm15=0xFF;
PulseDispose[6].Pwm23=0xFF;
// PulseDispose[7].PwmPulse=0x00;
PulseDispose[7].Pwm0=0x7F;
PulseDispose[7].Pwm7=0xFF;
PulseDispose[7].Pwm15=0xFF;
PulseDispose[7].Pwm23=0xFF;
// PulseDispose[8].PwmPulse=0x00;
PulseDispose[8].Pwm0=0xFF;
PulseDispose[8].Pwm7=0xFE;
PulseDispose[8].Pwm15=0xFF;
PulseDispose[8].Pwm23=0xFF;
// PulseDispose[9].PwmPulse=0x00;
PulseDispose[9].Pwm0=0xFF;
PulseDispose[9].Pwm7=0xFD;
PulseDispose[9].Pwm15=0xFF;
PulseDispose[9].Pwm23=0xFF;
// PulseDispose[10].PwmPulse=0x00;
PulseDispose[10].Pwm0=0xFF;
PulseDispose[10].Pwm7=0xFB;
PulseDispose[10].Pwm15=0xFF;
PulseDispose[10].Pwm23=0xFF;
//PulseDispose[11].PwmPulse=0x00;
PulseDispose[11].Pwm0=0xFF;
PulseDispose[11].Pwm7=0xF7;
PulseDispose[11].Pwm15=0xFF;
PulseDispose[11].Pwm23=0xFF;
// PulseDispose[12].PwmPulse=0x00;
PulseDispose[12].Pwm0=0xFF;
PulseDispose[12].Pwm7=0xEF;
PulseDispose[12].Pwm15=0xFF;
PulseDispose[12].Pwm23=0xFF;
//PulseDispose[13].PwmPulse=0x00;
PulseDispose[13].Pwm0=0xFF;
PulseDispose[13].Pwm7=0xDF;
PulseDispose[13].Pwm15=0xFF;
PulseDispose[13].Pwm23=0xFF;
// PulseDispose[14].PwmPulse=0x00;
PulseDispose[14].Pwm0=0xFF;
PulseDispose[14].Pwm7=0xBF;
PulseDispose[14].Pwm15=0xFF;
PulseDispose[14].Pwm23=0xFF;
// PulseDispose[15].PwmPulse=0x00;
PulseDispose[15].Pwm0=0xFF;
PulseDispose[15].Pwm7=0x7F;
PulseDispose[15].Pwm15=0xFF;
PulseDispose[15].Pwm23=0xFF;
//PulseDispose[16].PwmPulse=0x00;
PulseDispose[16].Pwm0=0xFF;
PulseDispose[16].Pwm7=0xFF;
PulseDispose[16].Pwm15=0xFE;
PulseDispose[16].Pwm23=0xFF;
//PulseDispose[17].PwmPulse=0x00;
PulseDispose[17].Pwm0=0xFF;
PulseDispose[17].Pwm7=0xFF;
PulseDispose[17].Pwm15=0xFD;
PulseDispose[17].Pwm23=0xFF;
//PulseDispose[18].PwmPulse=0x00;
PulseDispose[18].Pwm0=0xFF;
PulseDispose[18].Pwm7=0xFF;
PulseDispose[18].Pwm15=0xFB;
PulseDispose[18].Pwm23=0xFF;
//PulseDispose[19].PwmPulse=0x00;
PulseDispose[19].Pwm0=0xFF;
PulseDispose[19].Pwm7=0xFF;
PulseDispose[19].Pwm15=0xF7;
PulseDispose[19].Pwm23=0xFF;
// PulseDispose[20].PwmPulse=0x00;
PulseDispose[20].Pwm0=0xFF;
PulseDispose[20].Pwm7=0xFF;
PulseDispose[20].Pwm15=0xEF;
PulseDispose[20].Pwm23=0xFF;
//PulseDispose[21].PwmPulse=0x00;
PulseDispose[21].Pwm0=0xFF;
PulseDispose[21].Pwm7=0xFF;
PulseDispose[21].Pwm15=0xDF;
PulseDispose[21].Pwm23=0xFF;
// PulseDispose[22].PwmPulse=0x00;
PulseDispose[22].Pwm0=0xFE;
PulseDispose[22].Pwm7=0xFF;
PulseDispose[22].Pwm15=0xBF;
PulseDispose[22].Pwm23=0xFF;
// PulseDispose[23].PwmPulse=0x00;
PulseDispose[23].Pwm0=0xFF;
PulseDispose[23].Pwm7=0xFF;
PulseDispose[23].Pwm15=0x7F;
PulseDispose[23].Pwm23=0xFF;
// PulseDispose[24].PwmPulse=0x00;
PulseDispose[24].Pwm0=0xFF;
PulseDispose[24].Pwm7=0xFF;
PulseDispose[24].Pwm15=0xFF;
PulseDispose[24].Pwm23=0xFE;
// PulseDispose[25].PwmPulse=0x00;
PulseDispose[25].Pwm0=0xFF;
PulseDispose[25].Pwm7=0xFF;
PulseDispose[25].Pwm15=0xFF;
PulseDispose[25].Pwm23=0xFD;
// PulseDispose[26].PwmPulse=0x00;
PulseDispose[26].Pwm0=0xFF;
PulseDispose[26].Pwm7=0xFF;
PulseDispose[26].Pwm15=0xFF;
PulseDispose[26].Pwm23=0xFB;
// PulseDispose[27].PwmPulse=0x00;
PulseDispose[27].Pwm0=0xFF;
PulseDispose[27].Pwm7=0xFF;
PulseDispose[27].Pwm15=0xFF;
PulseDispose[27].Pwm23=0xF7;
// PulseDispose[28].PwmPulse=0x00;
PulseDispose[28].Pwm0=0xFF;
PulseDispose[28].Pwm7=0xFF;
PulseDispose[28].Pwm15=0xFF;
PulseDispose[28].Pwm23=0xEF;
// PulseDispose[29].PwmPulse=0x00;
PulseDispose[29].Pwm0=0xFF;
PulseDispose[29].Pwm7=0xFF;
PulseDispose[29].Pwm15=0xFF;
PulseDispose[29].Pwm23=0xDF;
// PulseDispose[30].PwmPulse=0x00;
PulseDispose[30].Pwm0=0xFF;
PulseDispose[30].Pwm7=0xFF;
PulseDispose[30].Pwm15=0xFF;
PulseDispose[30].Pwm23=0xBF;
// PulseDispose[31].PwmPulse=0x00;
PulseDispose[31].Pwm0=0xFF;
PulseDispose[31].Pwm7=0xFF;
PulseDispose[31].Pwm15=0xFF;
PulseDispose[31].Pwm23=0x7F;
}
/************************************************************
Function Name: T2Init
Function: Timer0 initial
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void MakeArray(void) //.PwmPulse从小到大给 PulseDispose结构排序。
{
int LcvXX,LcvYY,Min;
PWMDef temp;
for(LcvXX=0;LcvXX<31;LcvXX++)
{
Min=LcvXX;
for(LcvYY=LcvXX+1;LcvYY<32;LcvYY++)
{
if(PulseDispose[Min].PwmPulse>PulseDispose[LcvYY].PwmPulse)
{
temp=PulseDispose[Min];
PulseDispose[Min]=PulseDispose[LcvYY];
PulseDispose[LcvYY]=temp;
}
}
}
}
/************************************************************
Function Name: T2Init
Function: Timer0 initial
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void DisposePwm(void)
{
MakeArray( );
TrueStep=0;
unsigned char LcvNN=0;
unsigned char LcvMM=0;
for(LcvMM=LcvNN;LcvMM<32;LcvMM=LcvNN) //合并.PwmPulse相同的
{
PulseDispose[TrueStep]=PulseDispose[LcvNN];
while((PulseDispose[LcvMM].PwmPulse==PulseDispose[LcvMM+1].PwmPulse)&&(LcvMM<31))
{
PulseDispose[TrueStep].Pwm0 &=PulseDispose[LcvMM+1].Pwm0;
PulseDispose[TrueStep].Pwm7 &=PulseDispose[LcvMM+1].Pwm7;
PulseDispose[TrueStep].Pwm15 &=PulseDispose[LcvMM+1].Pwm15;
PulseDispose[TrueStep].Pwm23 &=PulseDispose[LcvMM+1].Pwm23;
LcvMM++;
}
LcvNN=LcvMM+1;
TrueStep++; //TrueStep最大为32
}
for(LcvMM=0;LcvMM<TrueStep-1;LcvMM++) //使PWM合并,一起处理
{
PulseDispose[LcvMM+1].Pwm0 &=PulseDispose[LcvMM].Pwm0;
PulseDispose[LcvMM+1].Pwm7 &=PulseDispose[LcvMM].Pwm7;
PulseDispose[LcvMM+1].Pwm15 &=PulseDispose[LcvMM].Pwm15;
PulseDispose[LcvMM+1].Pwm23 &=PulseDispose[LcvMM].Pwm23;
}
}
void TransferStruct(void)
{
unsigned char i;
for(i=0;i<TrueStep;i++) //用另一数组保存PWM
{
PwmPulse[i]= PulseDispose[i].PwmPulse;
PwmStepBuffer0[i]= PulseDispose[i].Pwm0;
PwmStepBuffer7[i]= PulseDispose[i].Pwm7;
PwmStepBuffer15[i]= PulseDispose[i].Pwm15;
PwmStepBuffer23[i]= PulseDispose[i].Pwm23;
}
for(i=TrueStep;i<33;i++) //给0
{
PwmPulse[i]= 255;
PwmStepBuffer0[i] = 0;
PwmStepBuffer7[i] = 0;
PwmStepBuffer15[i] = 0;
PwmStepBuffer23[i] = 0;
}
}
void FinalDispose(void)
{
PwmPortInitial( );
for(unsigned char LcvCounter=0;LcvCounter<32;LcvCounter++)
{
PulseDispose[LcvCounter].PwmPulse=StepData[LcvCounter];
}
DisposePwm( );
TransferStruct( );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -