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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

請問PWM要如何驅動WS2811

查看數: 2206 | 評論數: 14 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2025-3-5 17:51

正文摘要:

使用的是2T51單片機PWM的時鐘源為48MHz,請教各位大佬如何通過PWM寫時序去驅動?

回復

ID:111490 發表于 2025-5-5 10:10
coody_sz 發表于 2025-4-29 17:47
我用STC的AI8051U驅動WS2812,用PWM或SPI都可以,DMA傳輸,不耗CPU時間,一次傳輸最多2700個燈。

能發程序上來學習一下嗎?
ID:1034262 發表于 2025-4-29 17:47
我用STC的AI8051U驅動WS2812,用PWM或SPI都可以,DMA傳輸,不耗CPU時間,一次傳輸最多2700個燈。
ID:879348 發表于 2025-4-29 15:08
要控制每一個脈沖的時間,這并不省事,如果本身程序有很多事情做,可以考慮再掛一塊單片機專門做這個事
ID:108361 發表于 2025-4-29 13:02
用SPI模擬,不要用PWM
ID:607312 發表于 2025-4-29 10:49
World-semi 發表于 2025-4-3 17:04
你好,我這邊是WS2811的原廠家,有關時序控制的問題,可以聯系我們,我們可以提供技術支持和源代碼,教你控 ...

你好,我也想要資料,謝謝!
ID:1110477 發表于 2025-4-4 04:40
World-semi 發表于 2025-4-3 17:04
你好,我這邊是WS2811的原廠家,有關時序控制的問題,可以聯系我們,我們可以提供技術支持和源代碼,教你控 ...

我也想要資料,文檔即可,謝謝
ID:1113066 發表于 2025-4-3 17:04
你好,我這邊是WS2811的原廠家,有關時序控制的問題,可以聯系我們,我們可以提供技術支持和源代碼,教你控制WS2811
ID:1145034 發表于 2025-3-7 22:40
一個周期造一個bit,可以先送幾個周期,確保數據是你想要的,再進行下一步,一般要配合dma
ID:401564 發表于 2025-3-7 09:28
Jasminedebug 發表于 2025-3-6 13:02
void WS_Set1(unsigned long dat)
{
    unsigned char i;    for(i = 0; i < 24; i++)

STC的PWMM頻率是不能設置的!它只能是時鐘的多少分之一的分頻
就算是有能設置的型號,320nS就是0.32uS,那就是說,最壞的情況就是,每0.32uS的時間就進入中斷一次,用來處理下一個字節
系統幾乎沒有時間去做其它的事了,沒有人這么干的
ID:1144894 發表于 2025-3-6 13:02
lkc8210 發表于 2025-3-6 10:26
用PWM驅動WS2811需要用PWM溢出中斷
在中斷內更新下一個PWM的占空比

void WS_Set1(unsigned long dat)
{
    unsigned char i;    for(i = 0; i < 24; i++)
    {
        if(0x800000 == (dat & 0x800000) )
        {
               WPWM_OUT_SET(42);//48MHz:1碼,高電平920ns,低電平320ns
        }
        else
        {
                WPWM_OUT_SET(12);//48MHz:0碼,高電平320ns,低電平920ns
        }
        dat <<= 1;  
    }
}
請問這樣寫切換0、1碼和用PWM溢出中斷切換0、1碼有什么區別?
是因為這樣寫導致0、1碼切換過慢是嗎?
ID:1144894 發表于 2025-3-6 11:26
lkc8210 發表于 2025-3-6 10:26
用PWM驅動WS2811需要用PWM溢出中斷
在中斷內更新下一個PWM的占空比

void WS_Set1(unsigned long dat)
{
    unsigned char i;
                //EA = 1;
    for(i = 0; i < 24; i++)
    {
        if(0x800000 == (dat & 0x800000) )
                WPWM_OUT_SET(42);//48MHz:1碼,高電平920ns,低電平320ns
        else
                WPWM_OUT_SET(12);//48MHz:0碼,高電平320ns,低電平920ns
        dat <<= 1;  
    }
}
我想了解一下我這樣寫有什么問題,是因為這樣寫PWM的0、1碼切換過于慢,所以要用PWM溢出中斷來切換0、1碼是嗎?
ID:161164 發表于 2025-3-6 10:26
用PWM驅動WS2811需要用PWM溢出中斷
在中斷內更新下一個PWM的占空比
ID:401564 發表于 2025-3-6 09:16
這個芯片跟PWM是沒什么關系的,亮度是由寫入的數據決定的

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表