智能车制作
标题:
全局变量在128的PIT中断服务程序中无法累加
[打印本页]
作者:
Mr.Zombatar
时间:
2014-7-2 17:52
标题:
全局变量在128的PIT中断服务程序中无法累加
在128中定义了一个全局变量为sum,然后在PIT中断服务程序中加一个值比如为10,按理说应该是没来一次中断sum就该加10,但是,通过串口助手查看后发现 sum一直为10,这是为什么呢????????????
作者:
愚人船
时间:
2014-7-2 19:18
局部变量的生命周期是定义变量到该函数结束
作者:
竹音清影
时间:
2014-7-2 19:20
你不会每一次PIT加之前都先清零了吧。
作者:
Mr.Zombatar
时间:
2014-7-2 21:42
竹音清影 发表于 2014-7-2 19:20
你不会每一次PIT加之前都先清零了吧。
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "PLL.h"
#include "ADC.h"
#include "PIT.h"
#include "SCI.h"
#include "scope.h"
#include "hubulvbo.h"
#include "io.h"
float g_ACC_Z=0;
float temp;
float CAR_angle=0; //初始角度 /*******************就是这个值。。。。在中断里没有累加********、***/
float CAR_acc_z=0; //加速度采样值
float CAR_gyro=0; //陀螺仪采样值
/***AD采集**/
void Getinfo(void)
{
while(!ATD0STAT2_CCF0);//0通道转换完成前等待
CAR_gyro=ATD0DR0;
while(!ATD0STAT2_CCF1);//1通道转换完成前等待
CAR_acc_z=ATD0DR1;
}
void main(void)
{
/* put your own code here */
/*模块初始化*/
PLL_init();
PIT_Init();
ADC_init();
IO_init();
UART0_Init();
/***********/
EnableInterrupts;
for(;;)
{
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT(void)
{
PITTF_PTF0=1;
Getinfo(); //陀螺仪和加速度的采集
/*正确归一化*/
CAR_acc_z=((CAR_acc_z-Zmin)*Acc_RATIO)-160; //加速度计归一化后的值,160为设定参考值
CAR_gyro =((Gyro_Zero-CAR_gyro)*Gyro_RATIO); //陀螺仪所测角速度
/************/
//互补滤波
CAR_angle=CAR_angle+CAR_gyro*DETA_T;
CAR_angle=CAR_angle*FILTER_RATIO;
g_ACC_Z=(1-FILTER_RATIO)*CAR_acc_z;
CAR_angle=CAR_angle+g_ACC_Z;
/********/
/**发送到虚拟示波器**/
OutData[0] = CAR_gyro;
OutData[1] = CAR_acc_z;
OutData[2] = CAR_angle;
OutData[3] = 0;//CAR_angle+(CAR_gyro-350)*0.02;
OutPut_Data();
}
/*********************************/
请各大神帮忙看看
我已经看了调了N久了
作者:
竹音清影
时间:
2014-7-2 21:46
你先发这个变量g_ACC_Z看看是不是0,如果是0就说明是这个式子的问题 g_ACC_Z=(1-FILTER_RATIO)*CAR_acc_z;
作者:
laughtianxia
时间:
2014-7-2 22:39
好复杂的式子
作者:
Mr.Zombatar
时间:
2014-7-2 22:42
红树的破芯片!!!!!!!!!!!!!!!!
作者:
Mr.Zombatar
时间:
2014-7-2 23:06
laughtianxia 发表于 2014-7-2 22:39
好复杂的式子
为了找错误 就把互补滤波给拆了 。。。红树的破128害我白白浪费了两个晚上来调程序。。
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2