成都手机微信网站建设报价,有没有做粤菜的网站,弹性盒子做自适应网站,wordpress微信授权访问pico高级API函数中#xff0c; multicore_fifo_pop_timeout_us 和 multicore_fifo_push_timeout_us 的延时参数#xff0c; 如修改为500微秒以上时#xff0c;其延时似乎远远超过设定值#xff0c;其反馈速度似乎被主核的交互所左右 #xff0c;而修改为200以下时#x…pico高级API函数中 multicore_fifo_pop_timeout_us 和 multicore_fifo_push_timeout_us 的延时参数 如修改为500微秒以上时其延时似乎远远超过设定值其反馈速度似乎被主核的交互所左右 而修改为200以下时反馈出现阶越运行这两个函数 的core1的打印速度快速增加显示其延时更加与设定值相符。
测试的代码 #include stdio.h
#include pico/stdlib.h#include pico/multicore.h
#define FLAG_VALUE 2void core1_entry() {uint32_t g0;
bool ifthereispfalse;
uint64_t timeout_u500; //这儿修改为500微秒以上时core1的打印速度和core0 1hz基本同步 而修改为200以下时反馈出现阶越core1的打印速度快速增加。
uint32_t out;lable2:multicore_fifo_push_timeout_us ( FLAG_VALUE,timeout_u) ;if( !multicore_fifo_pop_timeout_us (timeout_u,out) )printf(Hmm, thats not right on core 1!\n);elseprintf(Its all gone well on core 1! %u \n,out);
goto lable2;while (1)tight_loop_contents();
}int main() {stdio_init_all();sleep_ms(1000);
printf(Hello, fakeone\n);sleep_ms(1000);multicore_launch_core1(core1_entry);uint32_t g0;// Wait for it to start up
lable:g multicore_fifo_pop_blocking();if (g ! FLAG_VALUE)printf(Hmm, thats not right on core 0!\n);else {multicore_fifo_push_blocking(FLAG_VALUE);printf(Its all gone well on core 0!\n);}
sleep_ms(1000);
goto lable;while (true) {printf(Hello, world!\n);sleep_ms(1000);}return 0;
} 关键函数介绍官方原文
bool multicore_fifo_pop_timeout_us ( uint64_t timeout_us, uint32_t * out )
Pop data from the read FIFO (data from the other core) with timeout.
This function will block until there is data ready to be read or the timeout is reached
See the note in the fifo section for considerations regarding use of the inter-core FIFOs Parameters
timeout_us the timeout in microseconds out the location to store the popped data if available Returns
true if the data was popped and a value copied into out, false if the timeout occurred before data could be popped bool multicore_fifo_push_timeout_us ( uint32_t data, uint64_t timeout_us )
Push data on to the write FIFO (data to the other core) with timeout.
This function will block until there is space for the data to be sent or the timeout is reached Parameters
data A 32 bit value to push on to the FIFO timeout_us the timeout in microseconds Returns
true if the data was pushed, false if the timeout occurred before data could be pushed 附pico例程原代码 #include stdio.h
#include pico/stdlib.h
#include pico/multicore.h#define FLAG_VALUE 123void core1_entry() {multicore_fifo_push_blocking(FLAG_VALUE);uint32_t g multicore_fifo_pop_blocking();if (g ! FLAG_VALUE)printf(Hmm, thats not right on core 1!\n);elseprintf(Its all gone well on core 1!);while (1)tight_loop_contents();
}int main() {stdio_init_all();printf(Hello, multicore!\n);multicore_launch_core1(core1_entry);// Wait for it to start upuint32_t g multicore_fifo_pop_blocking();if (g ! FLAG_VALUE)printf(Hmm, thats not right on core 0!\n);else {multicore_fifo_push_blocking(FLAG_VALUE);printf(Its all gone well on core 0!);}}