#include "led_app.h"
#include "buz_app.h"
#include "keys_app.h"
#include "uart.h"
pthread_mutex_t mutex;
extern char buffer_uart3[BUFFER_SIZE];
int flag_buz = 0;
/************************** 函数定义 **********************************
* 函数名称: void dot(void)
* 函数功能: dot, morse code
* 函数说明:
***********************************************************************/
void dot(void)
{
buz_ctl(BUZ1_ON);
usleep(400000);
}
/************************** 函数定义 **********************************
* 函数名称: void dash(void)
* 函数功能: dash, morse code
* 函数说明:
***********************************************************************/
void dash(void)
{
buz_ctl(BUZ1_ON);
usleep(1200000);
}
/************************** 函数定义 **********************************
* 函数名称: void space(int num)
* 函数功能: space, morse code
* 函数说明:
***********************************************************************/
void space(int num)
{
int i;
buz_ctl(BUZ1_OFF);
for(i=0;i<num;i++)
{
usleep(400000);
}
}
/************************** 函数定义 **********************************
* 函数名称: void * thd_func1(void)
* 函数功能: 线程1
* 函数说明:
***********************************************************************/
void * thd_func1(void)
{
int ret,a;
for(;;)
{
usleep(100000);
//printf(1);
//pthread_mutex_lock(&mutex); /*获取互斥锁*/
/*if(keys_getval()==0x01)
a=0x01;
if(keys_getval()==0x03)
a=0x03;*/
if(keys_getval()==0x01)
{
buz_ctl(BUZ1_ON);
led_ctl(LED1_ON);
usleep(100000);
led_ctl(LED1_OFF);
usleep(100000);
led_ctl(LED2_ON);
usleep(100000);
led_ctl(LED2_OFF);
usleep(100000);
led_ctl(LED3_ON);
usleep(100000);
led_ctl(LED3_OFF);
usleep(100000);
led_ctl(LED4_ON);
usleep(100000);
led_ctl(LED4_OFF);
buz_ctl(BUZ1_OFF);
usleep(100000);
}
if(keys_getval()==0x03)
{
usleep(100000);
buz_ctl(BUZ1_ON);
led_ctl(LED1_ON);
led_ctl(LED2_ON);
led_ctl(LED3_ON);
led_ctl(LED4_ON);
usleep(100000);
buz_ctl(BUZ1_OFF);
led_ctl(LED1_OFF);
led_ctl(LED2_OFF);
led_ctl(LED3_OFF);
led_ctl(LED4_OFF);
}
//pthread_mutex_unlock(&mutex);/*解除互斥锁*/
/*if(uart_rcvcmd() > 0)
{
if(strcmp(buffer_uart3,"LED1_ON")==0)
{
uart_sndcmd(buffer_uart3);
flag_buz = 1;
}
if(strcmp(buffer_uart3,"LED1_OFF")==0)
{
uart_sndcmd(buffer_uart3);
flag_buz = 2;
}
} */
}
pthread_exit(NULL);
}
void * thd_func2(void)
{
//printf("2");
for(;;)
{
usleep(1000000);
pthread_mutex_lock(&mutex); /*获取互斥锁*/
/*if(flag_buz==1)
{
led_ctl(LED1_ON);
}
else if(flag_buz==2)
{
led_ctl(LED1_OFF);
} */
if(uart_rcvcmd() > 0)
{
if(strcmp(buffer_uart3,"LED1_ON")==0)
{
uart_sndcmd(buffer_uart3);
//flag_buz = 1;
led_ctl(LED1_ON);
}
if(strcmp(buffer_uart3,"LED1_OFF")==0)
{
uart_sndcmd(buffer_uart3);
//flag_buz = 2;
led_ctl(LED1_OFF);
}
}
pthread_mutex_unlock(&mutex);/*解除互斥锁*/
}
pthread_exit(NULL);
}
void * thd_func3(void)
{
int ret;
//printf("3");
for(;;)
{
usleep(100000);
pthread_mutex_lock(&mutex); /*获取互斥锁*/
if(uart_rcvcmd() > 0)
{
if(strcmp(buffer_uart3,"SOS")==0)
{
uart_sndcmd(buffer_uart3);
//flag_buz = 1;
dot();
space(1);
dot();
space(1);
dot();
space(3);
dash();
space(1);
dash();
space(1);
dash();
space(3);
dot();
space(1);
dot();
space(1);
dot();
space(1);
}
if(strcmp(buffer_uart3,"OFF")==0)
{
uart_sndcmd(buffer_uart3);
//flag_buz = 2;
buz_ctl(BUZ1_OFF);
}
}
pthread_mutex_unlock(&mutex);/*解除互斥锁*/
}
pthread_exit(NULL);
}
/************************** 函数定义 **********************************
* 函数名称: int main(int argc, char** argv)
* 函数功能: 主函数,系统初始化,线程创建,按键扫描,
* 函数说明: exam template for 20190618
***********************************************************************/
int main(int argc, char** argv)
{
int32_t keyval= 0;
int led1_cnt=0,led2_cnt=0,led3_cnt=0,led4_cnt=0;
pthread_t th1_id,th2_id,th3_id;/*线程ID*/
pthread_attr_t thd_attr;/*线程参数*/
struct sched_param param;
int i, ret;
led_init(); /*初始化LED*/
buz_init(); /*初始化buz*/
keys_init();
if(uart_init(1,115200, 8, 'N', 1)<0)
{
perror("open_port");
}
pthread_mutex_init(&mutex, NULL);/*始化*/
/*线程1 创建*/
pthread_attr_init(&thd_attr);
pthread_attr_setschedpolicy(&thd_attr, SCHED_RR);
param.sched_priority = 98; /*设置线程优先级范围: 1--99,数值越大优先级越高*/
pthread_attr_setschedparam(&thd_attr, ¶m);
ret = pthread_create(&th1_id,NULL,(void *)thd_func1,NULL);
if(ret != 0)
{
printf("Create pthread1 error!\n");/*线程创建失败,打印相应的错误信息*/
exit(1);
}
/*线程2 创建*/
pthread_attr_init(&thd_attr);
pthread_attr_setschedpolicy(&thd_attr, SCHED_RR);
param.sched_priority = 97; /*设置线程优先级范围: 1--99,数值越大优先级越高*/
pthread_attr_setschedparam(&thd_attr, ¶m);
ret = pthread_create(&th2_id,NULL,(void *)thd_func2,NULL);
if(ret != 0)
{
printf("Create pthread2 error!\n");/*线程创建失败,打印相应的错误信息*/
exit(1);
}
//线程3 创建
pthread_attr_init(&thd_attr);
pthread_attr_setschedpolicy(&thd_attr, SCHED_RR);
param.sched_priority = 96; /*设置线程优先级范围: 1--99,数值越大优先级越高*/
pthread_attr_setschedparam(&thd_attr, ¶m);
ret = pthread_create(&th3_id,NULL,(void *)thd_func3,NULL);
if(ret != 0)
{
printf("Create pthread3 error!\n");/*线程创建失败,打印相应的错误信息*/
exit(1);
}
pthread_join(th1_id,NULL);/*以阻塞的方式等待thread指定的线程结束*/
pthread_join(th2_id,NULL);/*以阻塞的方式等待thread指定的线程结束*/
pthread_join(th3_id,NULL);/*以阻塞的方式等待thread指定的线程结束*/
pthread_mutex_destroy(&mutex);/*注销互斥锁*/
return 0;
}
/************************** 文件结束 ******************************/
没有合适的资源?快使用搜索试试~ 我知道了~
linux.zip_linux_嵌入式_摩尔斯
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共56个文件
c:11个
o:11个
cmd:9个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 184 浏览量
2022-07-15
21:20:42
上传
评论
收藏 299KB ZIP 举报
温馨提示
四步线程完成控制按键,流水灯,串口,摩尔斯码的控制和实现。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 56 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/c7605ebd585249f1b630f560f4d9ba6f_weixin_42650811.jpg!1)
我虽横行却不霸道
- 粉丝: 77
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)