原理是操作led 與 CPU 相連管腳的GPIO,具體操作哪個(gè)GPIO,需要查看原理圖。將對(duì)應(yīng)GPIO配置為輸出模式,并設(shè)置GPIO的對(duì)應(yīng)位為低電平即可點(diǎn)亮led,相反,設(shè)置對(duì)應(yīng)位為高電平則熄滅led
以韋東山的JZ2440為例,原理圖:
可以看出3個(gè)led分別對(duì)應(yīng)GPF4,GPF5,GPF6設(shè)置為輸出狀態(tài),查看芯片手冊(cè):
得知GPFCON寄存器地址為 0x56000050,GPFDAT寄存器地址為 0x56000054,GPF4,GP5,GPF6 的對(duì)應(yīng)配置分別為8-9,10-12,12-13位,需要將這連續(xù)的6位設(shè)置為010101 即可配置設(shè)置GPF4-6為輸出模式,然后控制 GPFDAT 4-6 位,0點(diǎn)亮,1熄滅。
代碼如下,匯編:
1 .global _start
2
3 _start:
4 // 關(guān)閉看門狗
5 ldr r0, =0x53000000
6 ldr r1, =0
7 str r1, [r0]
8 //初始化棧
9 mov sp,#4096
10 bl main
c代碼:
1 #define GPFCON (*(volatile unsigned int *) 0x56000050)
2 #define GPFDAT (*(volatile unsigned int *) 0x56000054)
3
4
5 void delay()
6 {
7 volatile int d = 100000;
8 while(d--);
9 }
10
11 void led_all_off()
12 {
13 GPFDAT |= (7 << 4);
14 }
15
16 void led_all_on()
17 {
18
19 GPFDAT &= ~(7 << 4);
20 }
21
22
23 void led_light_one(int index)
24 {
25 GPFDAT &= ~(1 << (4 + index));
26 }
27
28 void led_off_one(int index)
29 {
30 GPFDAT |= (1 << (4 + index));
31 }
32
33 void config_gpio()
34 {
35 //清0
36 GPFCON &= ~ ((3 << 8) | (3 << 10) | (3 << 12));
37 //設(shè)置1
38 GPFCON |= ((1 << 8) | (1 << 10) | (1 << 12));
39 }
40
41 void horse_left()
42 {
43 int i;
44 for(i =0; i < 3;i ++)
45 {
46 led_light_one(i);
47 delay();
48 led_off_one(i);
49
50 }
51 }
52
53 void horse_right()
54 {
55 int i;
56 for(i =3; i >= 0;i --)
57 {
58 led_light_one(i);
59 delay();
60 led_off_one(i);
61 }
62 }
63
64 void horse_race()
65 {
66 int i;
67 for(i =0 ; i < 3;i ++)
68 {
69 horse_left();
70 horse_right();
71 }
72 }
73
74
75 void twinkle()
76 {
77 int i;
78 led_all_off();
79 for(i =0 ; i < 3;i ++)
80 {
81 led_all_on();
82 delay();
83 led_all_off();
84 delay();
85 }
86 }
87
88 void one_by_one_on()
89 {
90 int i;
91 for(i =0; i < 3;i ++)
92 {
93 led_light_one(i);
94 delay();
95 }
96 }
97
98 void one_by_one_off()
99 {
100 int i;
101 for(i =3; i >= 0;i --)
102 {
103 led_off_one(i);
104 delay();
105 }
106 }
107 void one_by_one()
108 {
109 int i;
110 led_all_off();
111 for(i =0 ; i < 3;i ++)
112 {
113 one_by_one_on();
114 one_by_one_off();
115 }
116 }
117
118 int main()
119 {
120 config_gpio();
121 while(1)
122 {
123 twinkle();
124 horse_race();
125 one_by_one();
126 }
127
128 return 0;
129 }
Makefile
all:
arm-linux-gcc -O3 -c -o led.o led.S
arm-linux-gcc -O3 -c -o main.o main.c
arm-linux-ld -Ttext 0 led.o main.o -o led.elf
arm-linux-objcopy -O binary -S led.elf led.bin
clean:
rm led.o led.ef led.bin -rf
此代碼實(shí)現(xiàn)了3個(gè)led同時(shí)閃爍,流水燈。
上一篇:s3c2440之cpu提速
下一篇:內(nèi)存接口概念
推薦閱讀最新更新時(shí)間:2025-06-30 06:14






設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無(wú)線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開(kāi)發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹(shù)莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- 使用 MaxLinear, Inc 的 SPX385AN-1.2/TR 的參考設(shè)計(jì)
- LTC4089,通用鋰離子電池充電器可在僅 2cm2 的面積內(nèi)從 USB 和 6V 至 36V 輸入供電
- LTC3425 的典型應(yīng)用 - 5A、8MHz、4 相同步升壓型 DC/DC 轉(zhuǎn)換器
- LT1934ES6 3.3V降壓轉(zhuǎn)換器典型應(yīng)用電路
- 使用 Analog Devices 的 LT1764AEFE-1.5 的參考設(shè)計(jì)
- EVAL-ADUC7039QSPZ,用于汽車系統(tǒng)的 ADUC7039 集成精密電池傳感器的評(píng)估板
- ADP1612-BL1-EVZ,用于 ADP1612 升壓轉(zhuǎn)換器的空白評(píng)估板
- DI-132 - 1.75W高效率線性充電器替代品
- 使用 MaxLinear, Inc 的 XRP7618IGB-F 的參考設(shè)計(jì)
- 基于STM32的貪吃蛇游戲設(shè)計(jì)(程序、PCB)
- 方案分享 | ARXML 規(guī)則下 ECU 總線通訊與 ADTF 測(cè)試方案
- 車載SerDes產(chǎn)業(yè)起飛!國(guó)產(chǎn)新品密集炸場(chǎng)
- 出貨量激增1.34倍! 5G車規(guī)模組成標(biāo)配,三大廠商新品同臺(tái)競(jìng)技
- 6月新能源市場(chǎng):零跑創(chuàng)新高;比亞迪海外突破;理想滑坡
- 基于中科芯車規(guī)MCU的LED矩陣大燈應(yīng)用方案
- 蘋果被判侵犯3G專利,需向西班牙公司TOT賠償1.1億美元
- 從設(shè)計(jì)概念到 FPGA 原型僅需數(shù)分鐘,印度 InCore 完成 SoC Generator 平臺(tái)硅驗(yàn)證
- 消息稱因難尋客戶,三星推遲美國(guó)芯片工廠的完工時(shí)間
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動(dòng)駕駛安全性
- 利亞德:即日開(kāi)始對(duì)全系列產(chǎn)品進(jìn)行調(diào)整
- 合肥露笑碳化硅工廠或7月底完成設(shè)備安裝調(diào)試,9月小批試產(chǎn)
- 防心臟病猝死 智能心電監(jiān)測(cè)衣提前數(shù)天預(yù)警
- 虹膜識(shí)別的原理和五大應(yīng)用領(lǐng)域
- 我國(guó)自主研發(fā)醫(yī)療服務(wù)機(jī)器人 實(shí)現(xiàn)遠(yuǎn)程會(huì)診
- 技術(shù)+場(chǎng)景 配天機(jī)器人和橙子自動(dòng)化攜手未來(lái)3C應(yīng)用
- 賽微蔣燕波:設(shè)計(jì)符合市場(chǎng)需求的芯片必須從貼近客戶開(kāi)始
- 辛苦工作14年 你卻讓AI機(jī)器人取代了我
- 臺(tái)媒:因需求大大增加 臺(tái)積電正加快7nm芯片生產(chǎn)進(jìn)度
- 國(guó)運(yùn)之爭(zhēng):萬(wàn)字深剖國(guó)產(chǎn)PC芯片到底差在哪?
- 有沒(méi)有在正午太陽(yáng)光照射下不會(huì)飽和的光敏器件?
- 在multisim中新建HC4538
- MC9SXS128與nRF24l01的程序調(diào)試問(wèn)題
- 關(guān)于最近國(guó)內(nèi)某高科技公司被斷炊的,個(gè)人的一些看法
- Proteus 7.7漢化 破解版 免費(fèi)下載
- XC2S500E 5PQ208I FPGA時(shí)鐘問(wèn)題
- 這是485的一個(gè)程序,串口下發(fā)數(shù)據(jù)485接收到數(shù)據(jù)后換行回車返回來(lái)
- wince下重啟的問(wèn)題
- 看看你對(duì)電子行業(yè)未來(lái)的預(yù)測(cè)?
- 發(fā)現(xiàn)ADC寄存器的值寫不進(jìn)去