日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

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

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






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

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

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

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

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

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

int i;

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

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

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

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

return ret;
}

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

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

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

LED驅(qū)動是為LED提供穩(wěn)定電流及保護的半導體電源設備,屬于高效能電子轉換裝置,主要應用于照明、顯示屏背光及便攜式產(chǎn)品等領域。

關鍵字: LED驅(qū)動

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

關鍵字: LED驅(qū)動

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

關鍵字: LED驅(qū)動 EMC

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

關鍵字: 照明系統(tǒng) LED驅(qū)動

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

關鍵字: LED LED驅(qū)動

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

關鍵字: LED驅(qū)動 恒流電源 LED器件

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

關鍵字: LED驅(qū)動 脈寬調(diào)制

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

關鍵字: LED 照明 LED驅(qū)動

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

關鍵字: LED驅(qū)動 AC-DC反激 英飛凌

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

關鍵字: LED驅(qū)動 LED電源熱特性
關閉