高级会员
- 积分
- 628
- 威望
- 372
- 贡献
- 132
- 兑换币
- 10
- 注册时间
- 2011-11-4
- 在线时间
- 62 小时
|
写XS128的程序时,用了一下串口,部分代码如下:
/************* 锁相环24M **************/
void PLL_Init()
{
CLKSEL=0x00; //初始时还没有PLL
PLLCTL=0xe1; //时钟监控使能,PLL允许,VCOCLK调频2%,禁止快速苏醒,禁止自给时钟,伪停止下禁止实时中断和看门狗
SYNR=2;
REFDV=1; //PLLCLK=2*OSCCLK*(SYNR+1/((REFDV+1))=48M;
asm NOP;asm NOP;asm NOP; //等待锁相环稳定
while(!(CRGFLG&0x08)); //锁相环稳定标志位
CLKSEL=0x80; //时钟选择寄存器,Bus Clock=PLLCLK/2,停止模式下振荡器、系统时钟、锁相环、内核时钟、看门狗继续工作
}
/************* SCI设定9600波特 ***************/
void SCI_Init()
{
SCI0BDH=0x00;
SCI0BDL=0x9a; //9600bps BaudRate=BusClock/(16*SCIBD)
SCI0CR2=0x2C; //发送允许 接受中断允许
}
/*********** 串口发送程序:此部分为网上下载************/
void uart_putchar ( unsigned char c)
{
while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
SCI0DRL=c;
}
void uart_putstr(char ch[])
{
unsigned char ptr=0;
while(ch[ptr]){
uart_putchar((unsigned char)ch[ptr++]);
}
}
unsigned char uart_getchar(void)
{
//printf("uart_getchar\n");
byte res=0;
while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
return (SCI0DRL);
}
unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
unsigned short CRC_Temp;
unsigned char i,j;
CRC_Temp = 0xffff;
for (i=0;i<CRC_CNT; i++){
CRC_Temp ^= Buf;
for (j=0;j<8;j++) {
if (CRC_Temp & 0x01)
CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
else
CRC_Temp = CRC_Temp >> 1;
}
}
return(CRC_Temp);
}
void OutPut_Data(void)
{
int temp[4] = {0};
unsigned int temp1[4] = {0};
unsigned char databuf[10] = {0};
unsigned char i;
unsigned short CRC16 = 0;
for(i=0;i<4;i++)
{
temp = (int)OutData;
temp1 = (unsigned int)temp;
}
for(i=0;i<4;i++)
{
databuf[i*2] = (unsigned char)(temp1%256);
databuf[i*2+1] = (unsigned char)(temp1/256);
}
CRC16 = CRC_CHECK(databuf,8);
databuf[8] = CRC16%256;
databuf[9] = CRC16/256;
for(i=0;i<10;i++)
uart_putchar(databuf);
}
void Sent_Data()
{
OutData[0]=g_fGravityZAxis;
OutData[1]=g_fAngle;
OutData[2]=g_fAngularVelocity+100;
OutPut_Data();
}
用示波器观察此段程序执行时间为8.4ms,远超过1ms中断。我们加上这个函数所有控制的执行频率为88Hz,去掉这个中断,程序执行频率为200Hz,即5ms的循环控制执行。用的软件是:
请问各位用的都是这个软件吗?用的过程中出现过这个问题没啊???现在极度郁闷中。。。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|