This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DMA Problem!!! please help

Hello
i am trying to build a simple DMA program to read ADC values and its working but not completely

the problem is here: at first this code is working
1.

          u[0]=((float)ADC_Data[0])*3;
                sprintf(str,"%.2fv   ",u[0]);
                LCD_SetPos(0,0);
                LCD_String(str);

when changed to : or even divide by 1 its not working any more and the LCD is too slow

          u[0]=((float)ADC_Data[0])*3/4096;
                sprintf(str,"%.2fv   ",u[0]);
                LCD_SetPos(0,0);
                LCD_String(str);

2. the debugger is updating the correct u[0] in this code without a problem:

          u[0]=((float)ADC_Data[0])*3;
                sprintf(str,"%.2fv   ",u[0]);
                LCD_SetPos(0,0);
                LCD_String(str);

but in this code not !!! why even when i put the 3 lines to comments its must not affect the u[0] value

          u[0]=((float)ADC_Data[0])*3;
//              sprintf(str,"%.2fv   ",u[0]);
//              LCD_SetPos(0,0);
//              LCD_String(str);

please please i spend hours ... hours without any success please help why the division is not working and the bug in updating u[0] value i tryied to use volatile variable double or others but always when i use division the code runs very slow

the full code is generated with Cubemx.

www.mediafire.com/.../file

Parents
  • Hello thank you thank you very much for the help the code is working now the problem was only the .0 after the number
    i have change float to double and mcu runs very very slow but with float its running normal
    puting the variable as volatile or changeing the string size didn't affect the speed ?
    i am now satisfied with program with float but why not working with double !
    in the futur i may face this problem again so please can you help me how to fix it
    there are tow files the first runs perfect and the second runs the lcd very slow
    thanks

    www.mediafire.com/.../file
    www.mediafire.com/.../file

Reply
  • Hello thank you thank you very much for the help the code is working now the problem was only the .0 after the number
    i have change float to double and mcu runs very very slow but with float its running normal
    puting the variable as volatile or changeing the string size didn't affect the speed ?
    i am now satisfied with program with float but why not working with double !
    in the futur i may face this problem again so please can you help me how to fix it
    there are tow files the first runs perfect and the second runs the lcd very slow
    thanks

    www.mediafire.com/.../file
    www.mediafire.com/.../file

Children