35 lines
805 B
C
35 lines
805 B
C
#include "system/task_add.h"
|
|
#include "system/data_channel.h"
|
|
#include "system/float_word.h"
|
|
|
|
int task_add_run( void * task ) {
|
|
add_config * config_1 = (add_config *) task;
|
|
|
|
for(uint32_t i =0; i<DATA_CHANNEL_DEPTH; ++i){
|
|
float a;
|
|
float b;
|
|
data_channel_read(config_1->sources[ 0], (uint32_t * ) & a );
|
|
data_channel_read(config_1->sources[ 1], (uint32_t * ) & b );
|
|
float_word c;
|
|
c.value =a+b;
|
|
data_channel_write( config_1->sink, c.word);
|
|
}
|
|
|
|
|
|
add_config * config_2 = (add_config *) task;
|
|
|
|
for(uint32_t i =0; i<DATA_CHANNEL_DEPTH; ++i){
|
|
float a;
|
|
float b;
|
|
data_channel_read(config_2->sources[ 2], (uint32_t * ) & a );
|
|
data_channel_read(config_2->sources[ 3], (uint32_t * ) & b );
|
|
float_word c;
|
|
c.value =a+b;
|
|
data_channel_write( config_2->sink, c.word);
|
|
}
|
|
|
|
|
|
return 0;
|
|
}
|
|
|