欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 使用STM32生成正弦波程序看不懂,本人小白 [打印本頁]

作者: 袁木子愛學習    時間: 2021-1-18 16:52
標題: 使用STM32生成正弦波程序看不懂,本人小白
不知哪位大佬給解釋解釋下面那個公式 小白看不懂
void SineWave_Data( u16 cycle ,u16 *D,float Um)
{
    u16 i;
    for( i=0;i<cycle;i++)
    {
        D[ i]=(u16)((Um*sin(( 1.0*i/(cycle-1))*2*PI)+Um)*4095/3.3);

作者: 黃youhui    時間: 2021-1-19 08:51

    for( i=0;i<cycle;i++)
    {
        D[ i]=(u16)((Um*sin(( 1.0*i/(cycle-1))*2*PI)+Um)*4095/3.3);
    }

在這里sin(( 1.0*i/(cycle-1))*2*PI)你可以理解成sin(x)(x >= 0 且 x <=2派,當i= 0時,x= 0;當i= cycle - 1時, x = 2派,x隨著i的增大而增大),cycle就是sin(x)的周期,也可以說是寬度,cycle越大,正弦波的過零點距離越大。


在這里(Um*sin(( 1.0*i/(cycle-1))*2*PI)+Um)你可以理解成A * sin(x) +A,A就是正弦波的幅度也就是最大值,A*sin(x)+ A,就是將正弦波函數的向上挪移A個單位,這樣就將正弦波中的負數值變為正數值,最大值變成2A,最小值變為0.



最后那個*4095/3.3,就是個模數轉換,將模擬量轉換成數字量,4095是12位的DAC。



這個函數一般用作模數轉換或者LCD畫圖像。

作者: munuc_w    時間: 2021-1-19 10:32
正弦波生成我比較喜歡用查表法,簡單,CPU負擔也小。先將一個周期的正弦波數據算好存儲,然后讀數據輸出就可以了。
作者: man1234567    時間: 2021-1-19 16:19
樓上的解釋都深奧了,要先解釋什么是三角函數才合理
作者: 黃youhui    時間: 2021-1-19 20:30
man1234567 發表于 2021-1-19 16:19
樓上的解釋都深奧了,要先解釋什么是三角函數才合理

如果真的是這中純粹的小白,那只能當我沒回過這個貼,教不了,告辭。
作者: munuc_w    時間: 2021-1-20 08:39
man1234567 發表于 2021-1-19 16:19
樓上的解釋都深奧了,要先解釋什么是三角函數才合理

不知道三角函數的話,就別要自行車了!
作者: cjjdemon    時間: 2021-1-20 09:01
為什么不查表呢?這樣計算,就是在浪費MCU資源呀。。。
作者: 袁木子愛學習    時間: 2021-1-20 20:16
黃youhui 發表于 2021-1-19 08:51
for( i=0;i= 0 且 x

懂了 懂了  非常感謝
作者: 袁木子愛學習    時間: 2021-1-20 20:17
man1234567 發表于 2021-1-19 16:19
樓上的解釋都深奧了,要先解釋什么是三角函數才合理

哈哈哈  從三角函數開始倒還不至于
作者: 微微人生    時間: 2021-1-20 22:50
三十年前,老師傅們做的變頻器
就不用單片機,用存儲模塊,數字電路,就可以生成了
單片機里,存一個表,定時輸出表里的數據,再DA就成啊
簡單,高效




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1