cancel
Showing results for 
Search instead for 
Did you mean: 

How to create a for loop for a large array

macam1
Associate III
I want to create a flexible signal shape that can be viewed using an oscilloscope by making a program. I am using an array to form the signal, such as {2048, 4026, 2048, 0}, where 2048 represents the flat line I want to adjust, 4026 represents the peak, and 0 represents the valley. I want to adjust the value of 2048 flexibly; for example, if I input x=3, it should output {2048, 4026, 2048, 2048, 2048, 0}. However, I am confused about how to use the for loop or if statements because I want to place the value in the middle. I need help with my code; please provide suggestions or possibly an example code.

WhatsApp Image 2024-09-02 at 10.56.46.jpeg

 That is the description of what I want to create, and here is my code.

The code that I commented on is the part that I want to make flexible.

 

 

#define NS  333
uint32_t Wave_LUT[NS] = {
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
2048, 2149, 2250, 2350, 2450, 2549, 2646, 2742, 2837, 2929, 3020, 3108, 3193, 3275, 3355,
3431, 3504, 3574, 3639, 3701, 3759, 3812, 3861, 3906, 3946, 3982, 4013, 4039, 4060, 4076,
4087, 4094, 4095, 4091, 4082, 4069, 4050, 4026, 3998, 3965, 3927, 3884, 3837, 3786, 3730,
3671, 3607, 3539, 3468, 3394, 3316, 3235, 3151, 3064, 2975, 2883, 2790, 2695, 2598, 2500,
2400, 2300, 2199, 2098, 2048, 2048, //2048,4026, 2048,0
//2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
//2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 
//2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
//2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
//2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
//2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
1997, 1896, 1795, 1695, 1595, 1497, 1400, 1305, 1212, 1120, 1031, 944, 860, 779, 701, 627,
556, 488, 424, 365, 309, 258, 211, 168, 130, 97, 69, 45, 26, 13,4, 0, 1, 8, 19, 35, 56, 82, 
113, 149, 189, 234, 283, 336, 394, 456, 521, 591, 664, 740, 820,902, 987,1075, 1166, 1258, 
1353, 1449, 1546, 1645, 1745, 1845, 1947, 1950, 1965, 1975, 1990, 1999, 2010, 2022, 2047
};
//DAC_FINAL
HAL_DAC_Start_DMA(&hdac, DAC_CHANNEL_1, Wave_LUT, 306, DAC_ALIGN_12B_R);
HAL_TIM_Base_Start(&htim4);

 

 

Please help me, I really can’t analogize this anymore.

 

1 REPLY 1
macam1
Associate III

hwllooo, can anyone help me????