Can anyone explain what exactly are those high and low activity regions in the power trace in CWNANO? I have pasted my C code below. I am trying to multiply two matrices and would like an idea as to where to look for the corresponding power signature in the trace?
#include “hal.h”
#include “simpleserial.h”
#include <string.h>
#define K_ROWS 1
#define K_COLS 60
float K[K_ROWS][K_COLS] = {0.0};
uint8_t set_gain_matrix(uint8_t* data, uint8_t len) {
if (len != K_ROWS * K_COLS * sizeof(float)) return 1;
memcpy(K, data, K_ROWS * K_COLS * sizeof(float));
return 0;
}
uint8_t lqr_control(uint8_t* data, uint8_t len) {
if (len != K_COLS * sizeof(float)) return 1;
float x[K_COLS];
memcpy(x, data, K_COLS * sizeof(float));
float u[K_ROWS] = {0.0};
trigger_high();
for (int i = 0; i < K_ROWS; i++) {
for (int j = 0; j < K_COLS; j++) {
u[i] -= K[i][j] * x[j];
}
}
trigger_low();
simpleserial_put('r', K_ROWS * sizeof(float), (uint8_t*)u);
return 0;
}
int main(void) {
platform_init();
init_uart();
trigger_setup();
simpleserial_init();
simpleserial_addcmd('k', K_ROWS * K_COLS * sizeof(float), set_gain_matrix);
simpleserial_addcmd('l', K_COLS * sizeof(float), lqr_control);
while (1) {
simpleserial_get();
}
}