diff --git a/software/signal_processing/add.c b/software/signal_processing/add.c index c0be7d1..205aff4 100644 --- a/software/signal_processing/add.c +++ b/software/signal_processing/add.c @@ -4,7 +4,21 @@ int task_add_run( void * task ) { - // TODO + add_config * addiere = ( add_config * ) task; + uint32_t data_channel_base = addiere->sink; + data_channel_clear( data_channel_base ); + + for ( uint32_t i = 0; i < DATA_CHANNEL_DEPTH; ++i) + { + float_word res; + float_word sin_val; + float_word cos_val; + data_channel_read(addiere->sources[0], &sin_val.value); + data_channel_read(addiere->sources[1], &cos_val.value); + res.value = sin_val.value + cos_val.value; + + data_channel_write( data_channel_base, res.word ); + } return 0; }