chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

一文解析蜂鳴器驅(qū)動及LED驅(qū)動編寫

454398 ? 來源:博客園 ? 作者:z572089387 ? 2020-09-23 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一:LED驅(qū)動編寫

要編寫LED驅(qū)動,首先的知道開發(fā)板的構造;開發(fā)板分為核心板與底板;編寫驅(qū)動的第一步就是要看開發(fā)板,找到LED燈在開發(fā)板上的位置及所對應的名字;第一步就要查看核心板電路圖,以及底板電路圖;最后就是查看開發(fā)板手冊,然后進行程序編寫:

通過看開發(fā)板我們可以知道LED燈的位置的核心板上,在核心板上找到LED的電路圖,Ctrl+F可以在文檔中快捷查找:

通過電路圖我們可以看出:LED燈的一端已經(jīng)接高電平,只要給另一端加低電平LED就會被點亮。

然后查看LED在核心板上的引腳:

一文解析蜂鳴器驅(qū)動及LED驅(qū)動編寫

由上圖我們可以看出,LED1對應的是GPM4_0

然后通過芯片數(shù)據(jù)手冊可以查到它的具體用法:

通過手冊我們可以看出:GPM4CON 置一輸出,表示控制,置零輸入,表示檢測,GPM4DAT表示它的值和引腳的電壓狀態(tài)對于,值為一時表示高電平,值為零時表示底電平,下面貼出代碼:

 1     .global main
 2 main:
 3     mov ip, sp
 4     sub sp, sp, #12
 5     stmdb sp!, {fp, ip, lr}
 6     add fp, sp, #8
 7 
 8     ldr r3, gpmcon
 9     ldr r0, =0x1
10     str r0, [r3]
11 
12     ldr r3, gpmdat
13     ldr r0, =0x0
14     str r0, [r3]
15 
16     add sp, fp, #4
17     ldmdb sp, {fp, sp, pc}    
18 
19 gpmcon:
20     .word 0x110002e0
21 
22 gpmdat:
23     .word 0x110002e4

下面的用C語言代碼是實現(xiàn)四個LED燈的閃爍

 1 #define GPM4CON (*(unsigned long *)0x110002e0)//宏定義
 2 #define GPM4DAT (*(unsigned long *)0x110002e4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 int main()
 6 {
 7     GPM4CON &= ~0xffff;
 8     GPM4CON |= 0x1111;
 9     
10     while(1) {
11         GPM4DAT |= 0xf;//led off
12         udelay(250000);
13         GPM4DAT &= ~0xf;
14         udelay(250000);//led on
15     }    
16 }

跑馬燈:

 1 #define GPM4CON (*(unsigned long *)0x110002e0)
 2 #define GPM4DAT (*(unsigned long *)0x110002e4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 
 6 int main()
 7 {
 8     
 9     GPM4CON &= ~0xffff;
10     GPM4CON |= 0x1111;
11     unsigned long tmp = 0xf;
12 
13     while(1) {
14 
15         if((tmp & 0xf) == 0) {
16             tmp = 0xf;
17         }
18 
19         GPM4DAT = tmp << 1;
20         tmp = GPM4DAT;
21         udelay(250000);
22 
23     }
24 
25 }

流水燈:

 1 #define GPM4CON (*(unsigned long *)0x110002e0)
 2 #define GPM4DAT (*(unsigned long *)0x110002e4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 
 6 int main()
 7 {
 8     
 9     GPM4CON &= ~0xffff;
10     GPM4CON |= 0x1111;
11     unsigned long i = 0;
12     while(1) {
13         GPM4DAT = 0xf;
14         GPM4DAT &= ~(1 << i);//流水
15         udelay(500000);//延時
16         i++;
17         if(i == 4) {
18             i = 0;
19         } 
20     }
21 
22 }

上面程序總用到的延時函數(shù)udelay(),由于U-Boot作為嵌入式Linux系統(tǒng)的引導,不具有標準C庫中的內(nèi)容。要使用像printf函數(shù),延時函數(shù)udelay(),就需要u-boot中提供的。u-boot函數(shù)內(nèi)容在u-boot源碼文件中就需要u-boot中提供的。u-boot函數(shù)內(nèi)容在u-boot源碼文件中的System.map文件中。System.map文件是被內(nèi)核所使用的符號表。符號表是一個在符號名稱與它們的存儲器位置間的查詢表格。符號名稱可能是變量的名稱或是函數(shù)名稱。當要查詢符號名稱的位置或是特定位置的符號名稱時,就會需要System.map。找到函數(shù)的對應地址,就可以對它進行使用了;

二:蜂鳴器驅(qū)動編寫:

通過開發(fā)板我們可以看出蜂鳴器位于底板:

查看電路圖:

通過查看底板手冊可知,當XpwmTOUT0處于高電平是蜂鳴器就會響起;通過XpwmTOUT0我們在核心板上找到它的引腳

然后查看芯片手冊:

由圖我們可以看出GPD0CON為0x1時控制控制:GPD0DAT為1為高電平:下面貼出匯編代碼:

 1     .global main
 2 main:
 3     mov ip, sp
 4     sub sp, sp, #12
 5     stmdb sp!, {fp, ip, lr}
 6     add fp, sp, #8
 7 
 8     ldr r3, gpdcon
 9     ldr r0, =0x1
10     str r0, [r3]
11 
12     ldr r3, gpmdat
13     ldr r0, =0x1
14     str r0, [r3]
15 
16     add sp, fp, #4
17     ldmdb sp, {fp, sp, pc}    
18 
19 gpdcon:
20     .word 0x114000a0
21 
22 gpmdat:
23     .word 0x114000a4

C語言的代碼:

 1 #define GPD0CON (*(volatile unsigned long*)0x114000a0)
 2 #define GPD0DAT (*(volatile unsigned long*)0x114000a4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 int main(void)
 6 {   
 7     GPD0CON =  0x0001;
 8     while(1){
 9         GPD0DAT = 0x1;
10         udelay(250000);
11         GPD0DAT = 0x0;
12         udelay(250000);//延時
13     }
14     
15     return 0;
16 }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    243

    文章

    24327

    瀏覽量

    683667
  • 存儲器
    +關注

    關注

    39

    文章

    7692

    瀏覽量

    170027
  • LED驅(qū)動
    +關注

    關注

    73

    文章

    1049

    瀏覽量

    141746
  • 蜂鳴器
    +關注

    關注

    12

    文章

    896

    瀏覽量

    47464
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ?基于TLC6984 LED驅(qū)動器的微間距LED顯示技術解析

    Texas Instruments TLC6984 48x16矩陣LED顯示驅(qū)動器是款高度集成的共陰極矩陣LED顯示驅(qū)動器,具有48個恒流
    的頭像 發(fā)表于 09-04 10:23 ?299次閱讀
    ?基于TLC6984 <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>器的微間距<b class='flag-5'>LED</b>顯示技術<b class='flag-5'>解析</b>

    TLC6983EVM LED矩陣驅(qū)動評估模塊技術解析

    Texas Instruments TLC6983EVM LED驅(qū)動器評估模塊(EVM)用作TLC6983工程演示和評估的參考。TLC6983是款高度集成的共陰極矩陣LED顯示
    的頭像 發(fā)表于 08-26 11:15 ?535次閱讀
    TLC6983EVM <b class='flag-5'>LED</b>矩陣<b class='flag-5'>驅(qū)動</b>評估模塊技術<b class='flag-5'>解析</b>

    LP5860T LED矩陣驅(qū)動器技術解析與應用指南

    Texas Instruments LP5860T LED矩陣驅(qū)動器是款大電流、高性能LED矩陣驅(qū)動器。該器件集成了18個恒定電流阱和N
    的頭像 發(fā)表于 08-15 14:16 ?606次閱讀
    LP5860T <b class='flag-5'>LED</b>矩陣<b class='flag-5'>驅(qū)動</b>器技術<b class='flag-5'>解析</b>與應用指南

    德州儀器LP5810 4通道RGBW LED驅(qū)動器技術解析

    Texas Instruments LP5810 4通道RGBW LED驅(qū)動器具有超低常規(guī)工作電流,點亮LED時的典型電流為0.4mA。這些驅(qū)動器與1.8V、3.3V和5V電壓范圍邏輯
    的頭像 發(fā)表于 08-11 10:29 ?505次閱讀
    德州儀器LP5810 4通道RGBW <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>器技術<b class='flag-5'>解析</b>

    LP5812 4×3矩陣RGB LED驅(qū)動器技術解析與應用指南

    Texas Instruments LP5812 RGB LED驅(qū)動器是4 x 3矩陣驅(qū)動器,具有I^2^C和自主動畫引擎控制功能。這些驅(qū)動器生成6MHz時鐘信號,并使用它來同步多個設
    的頭像 發(fā)表于 08-08 16:18 ?747次閱讀
    LP5812 4×3矩陣RGB <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>器技術<b class='flag-5'>解析</b>與應用指南

    德州儀器TPS92621-Q1單通道LED驅(qū)動器技術解析

    Texas Instrument TPS92621-Q1單通道LED驅(qū)動器采用獨特的熱管理設計,可降低器件溫升。TPS92621-Q1是由汽車電池直接供電的線性驅(qū)動器,具有寬電壓范圍,可輸出高達
    的頭像 發(fā)表于 08-06 10:55 ?743次閱讀
    德州儀器TPS92621-Q1單通道<b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>器技術<b class='flag-5'>解析</b>

    關于有源蜂鳴器及無源蜂鳴器的區(qū)別及驅(qū)動各類單片機案例

    本文主要介紹了有源無源蜂鳴器的本質(zhì)區(qū)別,引腳判斷和對應的驅(qū)動程序,對我們選用蜂鳴器元件指引了方向
    的頭像 發(fā)表于 07-22 09:45 ?1171次閱讀
    關于有源<b class='flag-5'>蜂鳴器</b>及無源<b class='flag-5'>蜂鳴器</b>的區(qū)別及<b class='flag-5'>驅(qū)動</b>各類單片機案例

    浮思特 | LED顯示屏驅(qū)動IC技術解析,基礎原理與創(chuàng)新應用

    在每塊驚艷的LED顯示屏背后,驅(qū)動IC如同精密控制電流的“神經(jīng)中樞”,默默決定著畫面的流暢度、色彩的真實感與能耗的高低。從戶外巨幕的強韌可靠,到室內(nèi)高清屏的細膩呈現(xiàn),再到虛擬拍攝的零瑕疵要求
    的頭像 發(fā)表于 06-20 09:59 ?2159次閱讀
    浮思特 | <b class='flag-5'>LED</b>顯示屏<b class='flag-5'>驅(qū)動</b>IC技術<b class='flag-5'>解析</b>,基礎原理與創(chuàng)新應用

    從簡單光效到復雜互動,玩具LED驅(qū)動芯片方案盤點

    電子發(fā)燒友網(wǎng)報道(/黃山明)如今的不少AI玩具已經(jīng)開始在市面中進行售賣,而不論是AI玩具,還是普通玩具,只要能夠使用電源驅(qū)動,必少不了各種光效的加持,而這背后,需要的事LED驅(qū)動器來
    的頭像 發(fā)表于 06-19 00:02 ?4828次閱讀

    讀懂:LED 驅(qū)動電路二極管挑選要點

    讀懂:LED 驅(qū)動電路二極管挑選要點
    的頭像 發(fā)表于 02-06 14:47 ?889次閱讀

    LED驅(qū)動板是如何工作的

    ? 市面上LED產(chǎn)品百花齊放,應用場景非常多樣化。很多LED產(chǎn)品需要個核心部件,就是LED驅(qū)動板,本期主要講解它是如何工作的。
    的頭像 發(fā)表于 12-22 14:23 ?1982次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>板是如何工作的

    LED驅(qū)動電源設計四大問題匯總

    LED驅(qū)動電源的質(zhì)量好壞將會直接影響LED的壽命,因此如何做好LED驅(qū)動電源是
    的頭像 發(fā)表于 11-28 17:14 ?1236次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>電源設計四大問題匯總