存储问题
DA14580
2年前
存储问题
发布的gert1860点 3回复你好,
我已经写了一个代码样本P00, P01, P02 ADC值。
此代码由AT+TMRSTART=0,0,1触发
代码如下:
else if (user_compare_cmd(“TMRSTART”、3、3))
{
Uint8_t timer_id = ahtoi((char*)argument_array[0]);
Uint8_t index = ahtoi((char*)argument_array[1]);
times_seconds = ahtoi ((char *) argument_array [2]);
如果(指数= = 0)
codeless_env。咯[timer_id] = app_easy_timer (ahtoi ((char *) argument_array [2]), throw_command0);
Else if(index == 1) Else if(index == 1)
codeless_env。咯[timer_id] = app_easy_timer (ahtoi ((char *) argument_array [2]), throw_command1);
其他的
user_reply (tempstr假);
如果(指数< 4)
user_reply (tempstr,真实);
/ /输入插脚
GPIO_ConfigurePin((GPIO_PORT)0, (GPIO_PIN)0, INPUT, PID_GPIO, false);
GPIO_ConfigurePin((GPIO_PORT)0, (GPIO_PIN)1, INPUT, PID_GPIO, false);
GPIO_ConfigurePin((GPIO_PORT)0, (GPIO_PIN)2, INPUT, PID_GPIO, false);
/ / ADC INIT
adc_init (GP_ADC_SE, 0, 0);
}
在回调代码中:
空白throw_command0 ()
{
codeless_env。suppress_response = true;
adc_enable_channel (0);
adc_get_sample ();
int length = (int)(sizeof(ADC_values_1) / sizeof(ADC_values_1[0]));
For (int I = 0;我<长度;我+ +){
adc_enable_channel (0);
adc_get_sample ();
ADC_values_1[我]= adc_get_sample ();
adc_enable_channel (1);
adc_get_sample ();
ADC_values_2[我]= adc_get_sample ();
adc_enable_channel (2);
adc_get_sample ();
ADC_values_3[我]= adc_get_sample ();
}
For (int I = 0;我<长度;我+ +){
arch_printf(“%,%,% \ r \ n”,ADC_values_1[我],ADC_values_2[我],ADC_values_3[我]);
}
codeless_env。咯[0]= app_easy_timer (times_seconds throw_command0);
codeless_env。suppress_response = false;
}
Timer在回调函数中重新启动自己。
它在一段时间内运行良好,然后程序崩溃。
数组是全局定义的:
int ADC_value_1 [30];
如果我调试它与IDE Keil和运行它可能存储将是满的或adc停止工作?
知道问题在哪里出现吗?
Arch_printf()引起的问题!
致以最亲切的问候
哥特
2年前
嗨gert186,
我建议使用调试器来找出代码崩溃的地方。如果您能找到导致问题的代码行,我们应该能够进一步提供帮助。
致以最亲切的问候
IM_Dialog