你好,
我已将代码写入样本P00,P01,P02 ADC值。
此代码由无索+ tmrstart = 0,0,1触发
代码看起来像:
否则if(user_compare_cmd(“tmrstart”,3,3)))
{
uint8_t timer_id = ahtoi((char *)参数array [0]);
uint8_t index = ahtoi((char *)参数array [1]);
times_seconds = ahtoi((char *)参数array [2]);
if(index == 0)
Codeless_env.tmr [timer_id] = app_easy_timer(ahtoi((char *)aregument_array [2]),throw_command0);
否则if(index == 1)
Codeless_env.tmr [timer_id] = app_easy_timer(ahtoi((char *)aregument_array [2]),oppl_command1);
别的
user_reply(tempstr,false);
if(索引<4)
user_reply(tempstr,true);
//输入引脚
gpio_configurepin((gpio_port)0,(gpio_pin)0,输入,pid_gpio,false);
gpio_configurepin((gpio_port)0,(gpio_pin)1,输入,pid_gpio,false);
gpio_configurepin((gpio_port)0,(gpio_pin)2,输入,pid_gpio,false);
// ADC init.
adc_init(gp_adc_se,0,0);
}
在回调码中:
void throw_command0()
{
Dodeless_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; i
adc_get_sample();
adc_values_1 [i] = adc_get_sample();
ADC_ENABLE_CHANNEL(1);
adc_get_sample();
adc_values_2 [i] = adc_get_sample();
ADC_ENABLE_CHANNEL(2);
adc_get_sample();
adc_values_3 [i] = adc_get_sample();
}
for(int i = 0; i
}
Dodeless_env.tmr [0] = app_easy_timer(time_seconds,throw_command0);
Dodeless_env.suppress_response = false;
}
计时器在回调函数中重新启动自身。
它适用于时间的时间和程序崩溃。
阵列是全局定义的:
int adc_value_1 [30];
如果我用IDE keil调试它并运行它可能会填写存储或ADC停止工作?
问题发生的任何想法?
ARCH_PRINTF()造成了问题!
此致
盖特
嗨gert186,
我建议使用调试器来弄清楚代码崩溃的位置。如果您可以找到导致问题的代码行,我们应该能够进一步帮助。
此致
im_dialog.
我使用调试器!但问题是没有达到UART2回调函数:
静态void UART_CALLBALL(UINT8_T RES)
此函数或多或少删除缓冲区。
所以,如果你在循环中调用Arch_printf()。代码杀死自己。我不知道为什么!
此致
盖特
嗨盖特,
我想知道你要发送到UART的字节数。您显然每10ms每10ms调用计时器函数。你是否接近57k6位的UART比特率?
代码是否会运行,如果您只发送一个字符作为实验?
/ mhv.