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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教一個關于單片機驅動RGB彩燈的問題,目前已經成功點亮8顆

[復制鏈接]
跳轉到指定樓層
樓主
本人使用STC15單片機驅動RGB彩燈 時鐘為30M 通過IO口反轉來產生彩燈的數據時序(0碼和1碼)根據官方給出資料已經成功亮燈:


想跟老鐵請教幾個問題:
現在的這種全彩燈跟普通LED不太一樣比如要實現最簡單跑馬燈  花樣流水燈好像比一般的LED要復雜一些(只是我個人覺得
可能是我還不太了解)
目前實現單個顏色點亮和切換顏色已經實現  數據手冊中寫道一顆燈就需要24Bit 即3個字節的數據并且需要接收完畢24Bit才能點亮(我的這是GRB順序)
那么我的是八個燈珠  就需要循環發送24個字節即可點亮8個燈珠 原理是大致弄明白了一些,
《比如實現流水燈  這數據應該怎么發???》這幾天一直在研究這問題,到網站查資料結果都是STM32 的較多沒找到比較相近的參考!!!
所以向論壇的老鐵求助以下了!

以下為部分單片機驅動代碼:
此代碼只是在本人單片機里調試結果可以驅動  如果別的單片機可能需要對_nop_(); 做適當調整
//========================================================================
// 描述: 1碼,高電平850ns 低電平400ns 誤差正負150ns.   
// 參數: none.
// 返回: none.
//========================================================================
void WS2812_Write_1()
{
        WS2812_Data_GPIO = 1;
        //經過邏輯分析儀調試的的延時
        _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
        _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
        WS2812_Data_GPIO = 0;
}

//========================================================================
// 描述: 0碼,高電平400ns 低電平850ns 誤差正負150ns.
// 參數: none.
// 返回: none.
//========================================================================
void WS2812_Write_0()
{
        WS2812_Data_GPIO = 1;
        //經過邏輯分析儀調試的的延時
        _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
        WS2812_Data_GPIO = 0;
}

//========================================================================
// 描述: 發送24位數據.
// 參數: 綠色8位,紅色8位,藍色8位.
// 返回: none.
//========================================================================
void rgb_write(uint8 G8, uint8 R8, uint8 B8)
{
        unsigned int n = 0;
        //發送G8位
        EA = 0;
        for (n = 0; n < 8; n++)
        {

                if ((G8 & 0x80) == 0x80)
                {
                        rgb_set_up();
                }
                else
                {
                        rgb_set_down();
                }
                G8 <<= 1;
        }
        //發送R8位
        for (n = 0; n < 8; n++)
        {

                if ((R8 & 0x80) == 0x80)
                {
                        rgb_set_up();
                }
                else
                {
                        rgb_set_down();
                }
                R8 <<= 1;

        }
        //發送B8位
        for (n = 0; n < 8; n++)
        {

                if ((B8 & 0x80) == 0x80)
                {
                        rgb_set_up();
                }
                else
                {
                        rgb_set_down();
                }
                B8 <<= 1;
        }
}

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

使用道具 舉報

沙發
ID:267932 發表于 2021-4-21 17:29 | 只看該作者
建議SPI  加DMA的方法控制。
回復

使用道具 舉報

板凳
ID:232366 發表于 2021-4-21 17:33 | 只看該作者
zhai1995 發表于 2021-4-21 17:29
建議SPI  加DMA的方法控制。

目前C知識比較淡薄   還不會用SPI  DMA    尷尬想著先用些笨辦法先學習以下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产 | 欧美一区二区三区国产 | 国产高清免费视频 | 亚洲欧美日韩精品久久亚洲区 | 精品国产一区二区三区观看不卡 | 精品一级电影 | 色欧美片视频在线观看 | 欧美二区在线 | 国产高潮好爽受不了了夜色 | 91午夜在线 | 日韩欧美黄色 | 色毛片 | 欧美日韩国产三级 | 亚洲热在线视频 | av一区二区三区四区 | 亚洲一区二区 | 日韩电影a | 国产精品久久久久不卡 | 91偷拍精品一区二区三区 | 国产精品久久久久久久久久免费看 | 爱操av| 精品一二三 | 在线观看av网站永久 | 免费av电影网站 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 亚洲444eee在线观看 | 亚洲精品乱码久久久久久蜜桃 | 草草视频在线观看 | 久久久亚洲综合 | 午夜电影网站 | 亚洲国产精品一区二区久久 | 男女免费视频网站 | 欧美中文视频 | 国产精品欧美一区二区三区不卡 | 欧美精品久久 | 欧美日韩国产精品一区 | 91视频在线| 99久久精品国产麻豆演员表 | 五月天国产 | 久久精品亚洲国产奇米99 | 国产精品免费av |