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

標題: 懂WS2812時序的師傅們,請教個問題 [打印本頁]

作者: hai2369513    時間: 2024-5-6 15:55
標題: 懂WS2812時序的師傅們,請教個問題
懂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

作者: lkc8210    時間: 2024-5-6 17:11


作者: hai2369513    時間: 2024-5-6 18:09
lkc8210 發表于 2024-5-6 17:11

謝謝師傅!
作者: Y_G_G    時間: 2024-5-7 12:50
hai2369513 發表于 2024-5-6 18:09
謝謝師傅!

示波器有一個可以測量時間長度的功能,你測量一下就可以了
在這方面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;
  }
}


作者: cnos    時間: 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. }
復制代碼

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

感謝師傅,學習了!
作者: hai2369513    時間: 2024-5-8 09:26
Y_G_G 發表于 2024-5-7 12:50
示波器有一個可以測量時間長度的功能,你測量一下就可以了
在這方面30塊邏輯分析儀比示波器好用
這是一 ...

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

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

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




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美一级一级 | 一个色综合网 | 丰满少妇高潮无套内谢 | 97精品超碰一区二区三区 | 国产亚洲精品码 | 激情av小说| 日韩中文字幕一区二区三区 | 日韩免费高清视频 | 国产精品视频久久久 | 国产成人精品一区 | 国产嫩草视频 | 成人aaa| 九色在线视频 | 国内精品视频在线观看 | 99中文字幕 | a天堂在线视频 | 国产午夜精品一区二区三区视频 | 四虎免费在线观看 | av日韩在线播放 | 乳色吐息在线观看 | 成人在线小视频 | 亚洲一区中文 | 91av视频在线 | 国产在线欧美 | 人人射人人干 | 午夜亚洲精品 | 欧美亚洲在线观看 | 免费黄色一级视频 | 免费黄色一级视频 | 日韩免费大片 | 韩日一区二区 | 亚洲乱码国产乱码精品精软件 | 黄色1级片 | 黄色大片免费在线观看 | 亚洲成人黄色 | 国产小视频在线 | 欧美午夜精品一区二区三区 | 欧美激情一区 | 日韩免费在线观看 | 91精品国产成人www | wwwxxx欧美 |