91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 377KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-07-03
  • 語言: 其他
  • 標簽: 電子鋼琴??linux??arm??

資源簡介

該項目基于arm開發板。 運用了linux的多線程,多進程, arm的LCD屏幕的圖片顯示和觸摸屏控制功能,使用了
madplay進行音頻播放。

該系統運行時會生成一條進程讀取觸摸屏的x,y和壓力值數據,存儲到共享內存里面。
進入系統時會顯示一個主界面,通過讀取共享內存的x,y數據檢測到用戶點擊了鋼琴圖標后進入鋼琴界面,點擊鋼琴
琴鍵時,會播放該琴鍵對應的琴音,由于開發板限制無法一次播放多個音頻文件,所以在點擊下一個琴鍵時,會使用
命令終止其他音頻文件的播放。該程序還可以通過點擊鋼琴界面的按鈕調整鋼琴聲音的大小。并支持滑動彈奏。

資源截圖

代碼片段和文件信息

#include?“common.h“



int?show_bmp(int?x?int?y?const?char?*pathname);
int?piano_get_xy(int?*x?int?*y);

void?key12(void);
void?key11(void);
void?key10(void);
void?key9(void);
void?key8(void);
void?key7(void);
void?key6(void);
void?key5(void);
void?key4(void);
void?key3(void);
void?key2(void);
void?key1(void);

#define?TOUCH??0
#define?UP?????1
#define?DOWN???2
#define?LEFT???3
#define?RIGHT??4

int?touch?=?0;
int?pressure;
int?voice?=?-25; //-60?~?0
char?buf[5];
int?past_x?=?0past_y?=?0;
int?key?=?0;
int?past_key?=?0;

int?main()
{
int?mod?=?0;
int?xy;
int?event;

pid_t?pid;

pid_t?pid0?=?fork();
if(pid0?==?0)
{
int?id?=?shmget(ftok(“.“?1)?1024?IPC_CREAT|0777);
int?*addr1?=?shmat(id??/*?共享內存的ID?*/
???NULL/*?意味著讓系統幫忙找到一處恰當的虛擬地址來映射?*/
???0???/*?意味著以可讀可寫的方式訪問這塊內存?*/);

//1、打開event0文件
int?ts_fd?=?open(“/dev/input/event0“?O_RDWR);
if(ts_fd?==?-1)
{
perror(“open?event0?failed!“);
return?-1;
}
struct?input_event?ts_buf;
bzero(&ts_buf?sizeof(ts_buf));
while(1)
{
//2、阻塞(卡住等待手指觸摸屏幕后),讀取觸摸屏數據-->每一次只能獲取其中一種事件
read(ts_fd?&ts_buf?sizeof(ts_buf));

//3、分析處理觸摸屏數據
//判斷事件類型是否為觸摸屏事件
if(ts_buf.type?==?EV_ABS)
{

//進一步判斷事件類型是否為x軸事件
if(ts_buf.code?==?ABS_X)
{

x=?ts_buf.value*800/1024?;

}
//進一步判斷事件類型是否為y軸事件
if(ts_buf.code?==?ABS_Y)
{

y=?ts_buf.value*480/600;

}
*addr1?=?x;
*(addr1?+?1)?=?y;
}
else?if(ts_buf.type?==?EV_KEY)
{
if(ts_buf.code?==?BTN_TOUCH)
{
*(addr1?+?2)?=?ts_buf.value;
if(ts_buf.value?==?0)
{
*addr1?=?0;
*(addr1?+?1)?=?0;
}
}
}
}
}





/*?pid_t?pid2?=?fork();
?if(pid2?==?0)
{
int?id?=?shmget(ftok(“.“?1)?1024?IPC_CREAT|0777);

int?*addr3?=?shmat(id??
???NULL
???0);
int?key2;
int?pressure2;
while(1)
{
key2?=?*(addr3?+?3);
pressure2?=?*(addr3?+?2);

if(key?!=?past_key)
{
show_bmp(0?49?“/IOT/IO/piano_file/piano_bmp/background.bmp“);
switch(key2)
{
case??1:
show_bmp(0?49?“/IOT/IO/piano_file/piano_bmp/key.bmp“);
break;

case??2:
show_bmp(67?49?“/IOT/IO/piano_file/piano_bmp/k2.bmp“);
break;

case??3:
show_bmp(133?49?“/IOT/IO/piano_file/piano_bmp/k3.bmp“);

break;

case??4:
show_bmp(200?49?“/IOT/IO/piano_file/piano_bmp/k4.bmp“);

break;

case??5:
show_bmp(267?49?“/IOT/IO/piano_file/piano_bmp/k5.bmp“);

break;

case??6:
show_bmp(331?49?“/IOT/IO/piano_file/piano_bmp/k2.bmp“);
break;

case??7:
show_bmp(400?49?“/IOT/IO/piano_file/piano_bmp/k3.bmp“);

break;

case??8:
show_bmp(468?49?“/IOT/IO/piano_file/piano_bmp/k5.bmp“);


break;

case??9:
show_bmp(531?49?“/IOT/IO/piano_file/piano_bmp/k2.bmp“);


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-09-18?11:34??新建文件夾\
?????文件?????1152056??2019-09-18?10:15??新建文件夾\background.bmp
?????目錄???????????0??2019-09-18?11:32??新建文件夾\key_bmp\
?????文件???????58088??2019-09-18?08:26??新建文件夾\key_bmp\k2.bmp
?????文件???????58780??2019-09-18?08:27??新建文件夾\key_bmp\k3.bmp
?????文件???????58780??2019-09-18?08:28??新建文件夾\key_bmp\k4.bmp
?????文件???????57464??2019-09-18?08:28??新建文件夾\key_bmp\k5.bmp
?????文件???????57176??2019-09-18?08:29??新建文件夾\key_bmp\k6.bmp
?????目錄???????????0??2019-09-18?11:32??新建文件夾\key_on\
?????文件???????58296??2019-09-18?08:50??新建文件夾\key_on\on1.bmp
?????文件???????56056??2019-09-18?08:50??新建文件夾\key_on\on2.bmp
?????文件???????56564??2019-09-18?08:51??新建文件夾\key_on\on3.bmp
?????文件???????57256??2019-09-18?08:51??新建文件夾\key_on\on4.bmp
?????文件???????56768??2019-09-18?08:52??新建文件夾\key_on\on5.bmp
?????文件???????14346??2019-09-18?09:54??新建文件夾\piano.c
?????文件???????19254??2019-09-16?14:50??新建文件夾\piano_app.bmp
?????目錄???????????0??2019-09-18?11:32??新建文件夾\voice\
?????文件???????25077??2011-05-29?13:46??新建文件夾\voice\1.mp3
?????文件???????22987??2011-05-29?13:46??新建文件夾\voice\10.mp3
?????文件???????23405??2011-05-29?13:46??新建文件夾\voice\11.mp3
?????文件???????22987??2011-05-29?13:46??新建文件夾\voice\12.mp3
?????文件???????22987??2011-05-29?13:46??新建文件夾\voice\2.mp3
?????文件???????25077??2011-05-29?13:46??新建文件夾\voice\3.mp3
?????文件???????25077??2011-05-29?13:46??新建文件夾\voice\4.mp3
?????文件???????24659??2011-05-29?13:46??新建文件夾\voice\5.mp3
?????文件???????23823??2011-05-29?13:46??新建文件夾\voice\6.mp3
?????文件???????26749??2011-05-29?13:46??新建文件夾\voice\7.mp3
?????文件???????23823??2011-05-29?13:46??新建文件夾\voice\8.mp3
?????文件???????24241??2011-05-29?13:46??新建文件夾\voice\9.mp3

評論

共有 條評論