www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]//定義LED設(shè)備的名稱,這里是leds,這個(gè)模塊加載后,會(huì)自動(dòng)在/dev目錄里創(chuàng)建該名字的設(shè)備文件。#define DEVICE_NAME "leds"//mini2440開(kāi)發(fā)板上有4個(gè)LED(發(fā)光二極管);//這4個(gè)LED分別與S3C2440A的4個(gè)GPIO(通用可編程

//定義LED設(shè)備的名稱,這里是leds,這個(gè)模塊加載后,會(huì)自動(dòng)在/dev目錄里創(chuàng)建該名字的設(shè)備文件。
#define DEVICE_NAME "leds"

//mini2440開(kāi)發(fā)板上有4個(gè)LED(發(fā)光二極管);
//這4個(gè)LED分別與S3C2440A的4個(gè)GPIO(通用可編程輸入輸出端口)的PIN(引腳)相連接;
//這4個(gè)GPIO應(yīng)該被配置為輸出模式,當(dāng)GPIO設(shè)為0時(shí),PIN輸出低電平,LED將被點(diǎn)亮,
//而當(dāng)GPIO設(shè)為1時(shí),PIN輸出高電平,LED將被熄滅。






//這里定義靜態(tài)的全局的長(zhǎng)整型數(shù)組,用于儲(chǔ)存與這4個(gè)LED相連接的GPIO號(hào)。
static unsigned long led_table [] = {
S3C2410_GPB5,
S3C2410_GPB6,
S3C2410_GPB7,
S3C2410_GPB8,
};

//這里定義靜態(tài)的全局的整型數(shù)組,用于儲(chǔ)存這4個(gè)GPIO的配置,這里為輸出模式。
static unsigned int led_cfg_table [] = {
S3C2410_GPB5_OUTP,
S3C2410_GPB6_OUTP,
S3C2410_GPB7_OUTP,
S3C2410_GPB8_OUTP,
};

//當(dāng)應(yīng)用層的ioctl(fd, cmd, arg)被調(diào)用時(shí),系統(tǒng)將處理它能識(shí)別的命令;
//如果系統(tǒng)不能識(shí)別該命令,那么驅(qū)動(dòng)層的ioctl將會(huì)被調(diào)用;
//如果驅(qū)動(dòng)層的ioctl也不能識(shí)別該命令,應(yīng)該返回-EINVAL。
static int sbc2440_leds_ioctl(
struct inode *inode,
struct file *file,
unsigned int cmd, //命令號(hào)
unsigned long arg) //參數(shù)
{
switch(cmd) { //通過(guò)switch(分支選擇)對(duì)cmd(命令)進(jìn)行識(shí)別
case 0: //熄滅LED命令
case 1: //點(diǎn)亮LED命令
if (arg > 4) { //這里的arg(參數(shù))是LED號(hào),因?yàn)閙ini2440開(kāi)發(fā)板上只有4個(gè)LED,所以arg只能取0、1、2、3
return -EINVAL; //輸入不合法,返回-EINVAL
}
s3c2410_gpio_setpin( //s3c2410_gpio_setpin()函數(shù)用于設(shè)置GPIO的PIN的電平
led_table[arg], //把LED號(hào)轉(zhuǎn)換為GPIO號(hào)
!cmd //0是熄滅LED命令,PIN輸出高電平,LED將被熄滅
); //1是點(diǎn)亮LED命令,PIN輸出低電平,LED將被點(diǎn)亮
return 0; //成功操作,應(yīng)該返回0
default:
return -EINVAL; //不能識(shí)別該命令,應(yīng)該返回-EINVAL
}
}

//struct file_operations是文件操作結(jié)構(gòu)體,
//用于存放設(shè)備能進(jìn)行的各種操作的函數(shù)指針。
static struct file_operations dev_fops = {
.owner = THIS_MODULE, //為了防止設(shè)備在使用的過(guò)程中,模塊被缷載掉,owner應(yīng)該設(shè)置為T(mén)HIS_MODULE
.ioctl = sbc2440_leds_ioctl, //ioctl函數(shù)指針指向上面的sbc2440_leds_ioctl()函數(shù)
};

//struct miscdevice是混雜設(shè)備結(jié)構(gòu)體
static struct miscdevice misc = {
.minor = MISC_DYNAMIC_MINOR, //動(dòng)態(tài)分配LED設(shè)備的次設(shè)備號(hào)
.name = DEVICE_NAME, //name是設(shè)備名,在上面定義了DEVICE_NAME
.fops = &dev_fops, //文件操作結(jié)構(gòu)體指針fops指向上面的dev_fops
};

//設(shè)備初始化函數(shù),加上__init,模塊加載時(shí),dev_init()函數(shù)將被調(diào)用
static int __init dev_init(void)
{
int ret;

int i;

for (i = 0; i < 4; i++) { //4個(gè)LED
s3c2410_gpio_cfgpin( //s3c2410_gpio_cfgpin()函數(shù)用于配置GPIO的功能
led_table[i], //把LED號(hào)轉(zhuǎn)換為GPIO號(hào)
led_cfg_table[i] //輸出模式
);

s3c2410_gpio_setpin( //s3c2410_gpio_setpin()函數(shù)用于設(shè)置GPIO的PIN的電平
led_table[i], //把LED號(hào)轉(zhuǎn)換為GPIO號(hào)
0); //PIN輸出低電平,LED將被點(diǎn)亮
}

//注冊(cè)混雜設(shè)備misc
ret = misc_register(&misc);

//輸出LED設(shè)備初始化完成
printk (DEVICE_NAME"tinitializedn");

return ret;
}

//設(shè)備移除函數(shù),加上__exit,模塊缷載時(shí),dev_exit()函數(shù)將被調(diào)用
static void __exit dev_exit(void)
{
//取消注冊(cè)混雜設(shè)備misc
misc_deregister(&misc);
}

module_init(dev_init); //模塊加載時(shí),dev_init()函數(shù)將被調(diào)用
module_exit(dev_exit); //模塊缷載時(shí),dev_exit()函數(shù)將被調(diào)用
MODULE_LICENSE("GPL"); //模塊的許可權(quán)限,這里是GPL協(xié)議
MODULE_AUTHOR("FriendlyARM Inc."); //

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)是為L(zhǎng)ED提供穩(wěn)定電流及保護(hù)的半導(dǎo)體電源設(shè)備,屬于高效能電子轉(zhuǎn)換裝置,主要應(yīng)用于照明、顯示屏背光及便攜式產(chǎn)品等領(lǐng)域。

關(guān)鍵字: LED驅(qū)動(dòng)

在一些應(yīng)用中,希望在某些情況下可調(diào)節(jié)燈光的亮度,以便進(jìn)一步節(jié)能和提供舒適的照明。

關(guān)鍵字: LED驅(qū)動(dòng)

LED憑借其高效節(jié)能、長(zhǎng)壽命、環(huán)保等諸多優(yōu)勢(shì),已成為照明市場(chǎng)的主流選擇。而LED驅(qū)動(dòng)器作為L(zhǎng)ED照明系統(tǒng)的核心部件,其性能直接影響著LED燈具的穩(wěn)定性和可靠性。然而,在LED驅(qū)動(dòng)器設(shè)計(jì)過(guò)程中,電磁兼容性(EMC)問(wèn)題一直...

關(guān)鍵字: LED驅(qū)動(dòng) EMC

多年來(lái)TI一直致力于為汽車行業(yè)用戶提供最具競(jìng)爭(zhēng)力的LED驅(qū)動(dòng)解決方案,構(gòu)建創(chuàng)新、可靠、經(jīng)濟(jì)高效的汽車照明系統(tǒng)。

關(guān)鍵字: 照明系統(tǒng) LED驅(qū)動(dòng)

LED驅(qū)動(dòng)IC是一種集成電路,它通過(guò)控制電流來(lái)驅(qū)動(dòng)LED燈,這種IC具有許多優(yōu)點(diǎn),包括低功耗、高亮度、長(zhǎng)壽命、環(huán)保等,隨著LED驅(qū)動(dòng)IC技術(shù)的進(jìn)步,LED照明設(shè)備的成本也在不斷降低,使得更多的應(yīng)用場(chǎng)景得以實(shí)現(xiàn)。

關(guān)鍵字: LED LED驅(qū)動(dòng)

LED驅(qū)動(dòng)電路的主要功能是將交流電壓轉(zhuǎn)換為恒流電源,同時(shí)按照LED器件的要求完成與LED的電壓和電流的匹配。

關(guān)鍵字: LED驅(qū)動(dòng) 恒流電源 LED器件

我在看我已經(jīng)使用了幾年的 Brother 噴墨打印機(jī)時(shí),注意到它的軟開(kāi)/關(guān)開(kāi)關(guān)正上方有一個(gè)不起眼的綠色 LED。這個(gè) LED 有一個(gè)有趣的占空比:它關(guān)閉大約三秒鐘,然后在大約一秒鐘內(nèi)逐漸增加到最大強(qiáng)度,同樣在大約一秒鐘內(nèi)...

關(guān)鍵字: LED驅(qū)動(dòng) 脈寬調(diào)制

取代全球最大國(guó)家強(qiáng)制要求的白熾燈照明正在推動(dòng)向固態(tài)照明的范式轉(zhuǎn)變。LED 照明與替代照明技術(shù)相比具有顯著優(yōu)勢(shì),尤其是隨著每瓦流明的增加和每流明成本的降低。與傳統(tǒng)白熾燈泡相比,這些替代技術(shù)的主要優(yōu)勢(shì)之一是燈泡的實(shí)際使用壽命...

關(guān)鍵字: LED 照明 LED驅(qū)動(dòng)

LED照明產(chǎn)品標(biāo)準(zhǔn)迭代升級(jí),以及使用者對(duì)照明光質(zhì)量的追求,是制造廠商創(chuàng)新產(chǎn)品方案的動(dòng)力。英飛凌廣泛的LED照明產(chǎn)品組合,一直以來(lái)是國(guó)際國(guó)內(nèi)照明制造廠商青睞的選擇。 ICL88xx家族系列為新一代LED通用照明而設(shè)計(jì)研發(fā)...

關(guān)鍵字: LED驅(qū)動(dòng) AC-DC反激 英飛凌

LED 照明是一項(xiàng)技術(shù)創(chuàng)新,伴隨著額外的設(shè)計(jì)挑戰(zhàn)。為避免熱擊穿,LED 照明系統(tǒng)設(shè)計(jì)人員應(yīng)考慮組件的熱特性。這在汽車照明等應(yīng)用中尤為重要,在這些應(yīng)用中,高環(huán)境溫度和較長(zhǎng)的運(yùn)行時(shí)間會(huì)導(dǎo)致組件迅速劣化。

關(guān)鍵字: LED驅(qū)動(dòng) LED電源熱特性
關(guān)閉