久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1572|回復: 8
打印 上一主題 下一主題
收起左側

懂WS2812時序的師傅們,請教個問題

[復制鏈接]
回帖獎勵 1 黑幣 回復本帖可獲得 1 黑幣獎勵! 每人限 3 次
跳轉到指定樓層
樓主
懂WS2812的師傅們,請教個問題如圖,我示波器的圖跟規格書的圖,如何去看波形對不對?要看哪些參數?如何去看波形和規格書?請教各位師傅們了

ws2812.jpg (4.23 MB, 下載次數: 39)

ws2812

ws2812

51hei截圖_20240506155123.png (83.32 KB, 下載次數: 52)

規格書1

規格書1

51hei截圖_20240506155109.png (62.93 KB, 下載次數: 42)

規格書2

規格書2
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2024-5-6 17:11 | 只看該作者

評分

參與人數 1黑幣 +5 收起 理由
hai2369513 + 5 很給力!

查看全部評分

回復

使用道具 舉報

板凳
ID:977079 發表于 2024-5-6 18:09 | 只看該作者
回復

使用道具 舉報

地板
ID:401564 發表于 2024-5-7 12:50 | 只看該作者

示波器有一個可以測量時間長度的功能,你測量一下就可以了
在這方面30塊邏輯分析儀比示波器好用
這是一個已經驗證的WS2812寫入函數,你參考一下
/*—————————————————————————————————————————————————————————————————
*函數名                :write_ws2812
*函數功能        :寫入數據
*輸入                :rgb_data
*輸出                :無
備注: 使用16MHZ的內部RC時鐘,一個指令周期為: 250uS,不需要增加延時
—————————————————————————————————————————————————————————————————*/
void write_ws2812(u8 rgb_data)
{
  u8 i;
  for(i = 0; i < 8; i++)
  {
    if(rgb_data & 0x80)//寫"1"
    {
      DO = HI;
          delay_750ns//這個是宏定義750nS延時,你要根據你用的單片機來自己寫一個,51單片機可以用幾個空指令來完成
      DO = LOW;
    }
    else //寫"0"
    {
      DO = HI;//如果你用的單片機指令快于250nS,可以加一個或者幾個空指令,來達到延時的目的
      DO = LOW;
    }
    rgb_data <<= 1;
  }
}

評分

參與人數 1黑幣 +90 收起 理由
admin + 90 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:688692 發表于 2024-5-7 16:03 | 只看該作者
論壇里面已經有帖子把2812的時序用通俗語言解釋得較為清楚了,我也簡單在他們的基礎上進一步總結一下
要從芯片設計制造的角度去思考時序問題。比如為什么DS18B20和WS2812這種芯片的時序時間都有一個范圍,其實是因為這些芯片內部用的是RC振蕩器,所以不會太精準,因此要求外部時序無論在高溫低溫還是電壓偏高偏低的情況下都落入一個特定的范圍。

對于ws2812來說,只要來個高電平,那么就會觀察這個高電平的持續時間,如果持續時間小于某個值,判為0,如果大于某個值,判為1.
如果信號變成了低電平,那么就等待下一個信號的到來,如果等了半天80us,沒有下一個信號,就判定為復位信號,本次傳輸結束。

因此只要控制高電平持續時間的長短,就是控制了發的到底是1還是0了。以下是我用的代碼,自認為沒有更簡潔的辦法了。

//STC8G1K08A 22.1184MHz
  1. //STC8G1K08A 22.1184MHz

  2. void nop(void)
  3. {
  4. }
  5. void sendbyte(unsigned char byte)
  6. {
  7.         unsigned char i;
  8.         i=8;
  9.         EA=0;
  10.                 do
  11.                 {
  12.                         ws2812pin=1;nop();
  13.                         ws2812pin=byte&0x80;nop();
  14.                         ws2812pin=0;nop();
  15.                         byte=(byte<<1);                 //左移位
  16.                 }while(--i);
  17.         EA=1;
  18. }
  19. void SetLed(unsigned char R_,G_,B_)
  20. {
  21.         sendbyte(G_);
  22.         sendbyte(R_);
  23.         sendbyte(B_);
  24. }
復制代碼

評分

參與人數 2黑幣 +105 收起 理由
lkc8210 + 15 共享資料的黑幣獎勵!
admin + 90 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:977079 發表于 2024-5-8 09:25 | 只看該作者
cnos 發表于 2024-5-7 16:03
論壇里面已經有帖子把2812的時序用通俗語言解釋得較為清楚了,我也簡單在他們的基礎上進一步總結一下
要從 ...

感謝師傅,學習了!
回復

使用道具 舉報

7#
ID:977079 發表于 2024-5-8 09:26 | 只看該作者
Y_G_G 發表于 2024-5-7 12:50
示波器有一個可以測量時間長度的功能,你測量一下就可以了
在這方面30塊邏輯分析儀比示波器好用
這是一 ...

師傅,您說的那個測時間長度的功能叫什么?比如??
回復

使用道具 舉報

8#
ID:401564 發表于 2024-5-8 17:40 | 只看該作者
hai2369513 發表于 2024-5-8 09:26
師傅,您說的那個測時間長度的功能叫什么?比如??

示波器如果是英文的,它會有一個cursor的按鍵,使用方法大多是一樣的,或者是相似的
你先在一個測量波形的界面,按下停止按鍵,就像你現在上傳的這個波形一個
然后按一下cursor按鍵,左右旋轉一下旋鈕,大概操作就是這樣子的,一時半會兒說不明白,你可能百度一下
然后,你再去測量一下示波器上的的1KHZ時鐘,用來驗證一下
如果你的示波器沒有這個cursor按鍵,那它可能是叫"光標"
回復

使用道具 舉報

9#
ID:977079 發表于 2024-5-8 20:24 | 只看該作者
Y_G_G 發表于 2024-5-8 17:40
示波器如果是英文的,它會有一個cursor的按鍵,使用方法大多是一樣的,或者是相似的
你先在一個測量波形的 ...

萬分感謝師傅百忙抽時間回復我,謝謝!剩下的交給徒弟我了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情欧美一区二区三区中文字幕 | 亚洲逼院 | 日韩精品一区二 | 日韩av手机在线观看 | 欧美精品一区二区三区在线播放 | 亚洲一区在线观看视频 | 精品国产一区二区国模嫣然 | 在线免费av电影 | 日韩手机在线看片 | 热久久久久 | 免费视频二区 | 午夜激情一区 | 精品国产乱码久久久久久1区2区 | 日韩三级 | 久久久久久久久久毛片 | 婷婷五月色综合香五月 | 精品美女视频在线观看免费软件 | 欧美久久免费观看 | 热久久免费视频 | 亚洲国产精品成人综合久久久 | 国产在线www | 国产精品亚洲成在人线 | 亚洲第一天堂无码专区 | 国产91丝袜在线18 | 久草久| 久久精品aaa | 欧美久久一级特黄毛片 | 黄色a三级 | 亚洲福利在线观看 | 在线观看h视频 | 欧美日韩一区二区视频在线观看 | 国产精品我不卡 | 亚洲小说图片 | 久久一区二区视频 | 色婷婷av久久久久久久 | 韩国精品一区二区三区 | 九九一级片 | 国产男女视频网站 | 色播视频在线观看 | 国产在线一区二区三区 | 午夜日韩精品 |