#include #include #include #include int main(int argc, char **argv)
// 這是個無限迴圈,程序有可能在read函式中休眠,當有按鍵被按下時,它才返回
while (1)
for (i = 0; i < sizeof(press_cnt)/sizeof(press_cnt[0]); i++)
}close(fd);
return 0;
}
#include #include #include #include #include #include #include #include #include #include #define device_name "buttons" /* 載入模式後,執行」cat /proc/devices」命令看到的裝置名稱 */
#define button_major 232 /* 主裝置號 */
struct button_irq_desc ;
/* 用來指定按鍵所用的外部中斷引腳及中斷觸發方式, 名字 */
static struct button_irq_desc button_irqs = , /* k1 */
, /* k2 */
, /* k3 */
, /* k4 */
};/* 按鍵被按下的次數(準確地說,是發生中斷的次數) */
static volatile int press_cnt = ;
/* 等待佇列:
* 當沒有按鍵被按下時,如果有程序呼叫s3c24xx_buttons_read函式,
* 它將休眠
*/static declare_wait_queue_head(button_waitq);
/* 中斷事件標誌, 中斷服務程式將它置1,s3c24xx_buttons_read將它清0 */
static volatile int ev_press = 0;
static irqreturn_t buttons_interrupt(int irq, void *dev_id)
/* 應用程式對裝置檔案/dev/buttons執行open(...)時,
* 就會呼叫s3c24xx_buttons_open函式
*/static int s3c24xx_buttons_open(struct inode *inode, struct file *file)
if (err)
return 0;
}/* 應用程式對裝置檔案/dev/buttons執行close(...)時,
* 就會呼叫s3c24xx_buttons_close函式
*/static int s3c24xx_buttons_close(struct inode *inode, struct file *file)
return 0;
}/* 應用程式對裝置檔案/dev/buttons執行read(...)時,
* 就會呼叫s3c24xx_buttons_read函式
*/static int s3c24xx_buttons_read(struct file *filp, char __user *buff,
size_t count, loff_t *offp)
/* 這個結構是字元裝置驅動程式的核心
* 當應用程式操作裝置檔案時所呼叫的open、read、write等函式,
* 最終會呼叫這個結構中的對應函式
*/static struct file_operations s3c24xx_buttons_fops = ;
/* * 執行「insmod s3c24xx_buttons.ko」命令時就會呼叫這個函式
*/static int __init s3c24xx_buttons_init(void)
printk(device_name " initialized\n");
return 0;}/*
* 執行」rmmod s3c24xx_buttons.ko」命令時就會呼叫這個函式
*/static void __exit s3c24xx_buttons_exit(void)
/* 這兩行指定驅動程式的初始化函式和解除安裝函式 */
module_init(s3c24xx_buttons_init);
module_exit(s3c24xx_buttons_exit);
/* 描述驅動程式的一些資訊,不是必須的 */
module_author(""); // 驅動程式的作者
module_description("s3c2410/s3c2440 button driver"); // 一些描述資訊
module_license("gpl"); // 遵循的協議
這裡是makefile部分
cross=arm-linux-
all: button_test
button_test: button_test.c
$(cross)gcc -o $@ button_test.c -static
clean:
@rm -rf button_test *.o
button按鈕變換名稱
str.format t 第 d次迴圈 i cstring str str.format t floating point 2f n 12345.12345 tprintf s lpctstr str str.format t left justified integer 6d n 35 tprin...
MFC按鈕控制項(Button)
按鈕控制項的主要方法和事件見mfc 程式開發參考大全 p186 p188 下面是乙個例項,用按鈕來實現顯示位圖 顯示圖示 顯示滑鼠影象和選中按鈕的功能,步驟如下 1 建立乙個基於對話方塊的應用程式 2 向對話方塊中新增乙個複選按鈕 乙個單選按鈕控制項和5個按鈕控制項,為按鈕控制項新增變數,分別為m ...
Button按鈕顏色切換
class buttonlistener implements onclicklistener,ontouchlistener if event.getaction motionevent.action down else if v.getid r.id.btnschool if event.get...