Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Hypo
EE-Codes-of-SCNU
提交
4ed923c6
E
EE-Codes-of-SCNU
项目概览
Hypo
/
EE-Codes-of-SCNU
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
EE-Codes-of-SCNU
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
4ed923c6
编写于
1月 19, 2020
作者:
E
Eddie-He-090
提交者:
GitHub
1月 19, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add files via upload
上级
25618db6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
236 addition
and
0 deletion
+236
-0
Embedded_2019-2020/2019-2020嵌入式系统实验综合设计.txt
Embedded_2019-2020/2019-2020嵌入式系统实验综合设计.txt
+236
-0
Embedded_2019-2020/2019-2020嵌入式系统实验综合设计实验报告.pdf
Embedded_2019-2020/2019-2020嵌入式系统实验综合设计实验报告.pdf
+0
-0
Embedded_2019-2020/ucos综合实验要求2019.doc
Embedded_2019-2020/ucos综合实验要求2019.doc
+0
-0
未找到文件。
Embedded_2019-2020/2019-2020嵌入式系统实验综合设计.txt
0 → 100644
浏览文件 @
4ed923c6
#include "Includes.h" /* uC/OS interface */
#include "option.h"
#include "2410lib.h"
#include "uhal.h"
OS_STK StackLED[STACKSIZE]= {0, };
OS_STK StackSEG[STACKSIZE]= {0, };
char IdLED = '1';
char IdSEG = '2';
int seg=0;
void TaskLED(void *Id);
void TaskSEG(void *Id);
OS_EVENT *Mbox1;
void User_LED_Blink(void)
{
static int led_status = 1;
led_status += 1;
if(led_status % 2 == 0)
Led_Display(0x0f);
else
Led_Display(0x00);
}
void User_SEG_Blink(void)
{
static unsigned char seg_value[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e };
static int seg_status = 0;
*((unsigned char *)0x10000006) = 0x3e;
*((unsigned char *)0x10000004) = seg_value[seg];
seg_status += 1;
if(seg_status > 15)
seg_status = 0;
}
void TaskLED(void *Id)
{
char Msg[100];
INT8U err;
int nCount = 0;
int benable = STEP_MOTOR_ENABLE;
int direct = STEP_MOTOR_CLOCKWISE;
char led_status = 0x0;
ARMTargetStart();
uHALr_printf("Task1() called\n");
uHALr_printf("步进电机测试!\n");
uHALr_printf("E -- 正反转 F -- 启停");
uHALr_printf("UP -- 加速 DOWN -- 减速");
DRVStepperInit();
DRVStepperSetDirect(direct);
DRVStepperControl(benable);
for (;;) {
INT8U ch;
ch = Key_GetKey();
if(ch == 0)
continue;
switch( ch )
{
case '1':
uHALr_printf("\r1");
seg=1;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '2':
uHALr_printf("\r2\r");
seg=2;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '3':
uHALr_printf("\r3\r");
seg=3;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '4':
uHALr_printf("\r4\r");
seg=4;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '5':
uHALr_printf("\r5\r");
seg=5;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '6':
uHALr_printf("\r6\r");
seg=6;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '7':
uHALr_printf("\r7\r");
seg=7;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '8':
uHALr_printf("\r8\r");
seg=8;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '9':
uHALr_printf("\r9\r");
seg=9;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case '0':
uHALr_printf("\r0\n");
seg=0;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case 'A':
uHALr_printf("\rA\n");
User_LED_Blink();
seg=10;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case 'C':
uHALr_printf("\r加速");
DRVStepperSpeedUp();
seg=12;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case 'D':
uHALr_printf("\r减速");
DRVStepperSpeedDown();
seg=13;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
break;
case 'E':
if(direct == STEP_MOTOR_CLOCKWISE)
{
uHALr_printf("\r正转");
direct = STEP_MOTOR_ANTICLOCKWISE;
seg=14;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
}
else
{
uHALr_printf("\r反转");
direct = STEP_MOTOR_CLOCKWISE;
seg=14;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
}
DRVStepperSetDirect(direct);
break;
case 'F':
if(benable == STEP_MOTOR_ENABLE)
{
uHALr_printf("\r停止ֹ");
benable = STEP_MOTOR_DISABLE;
seg=15;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
}
else
{
uHALr_printf("\r启动");
benable = STEP_MOTOR_ENABLE;
seg=15;
sprintf(Msg, "TaskSEG %d", nCount++);
OSMboxPost(Mbox1, Msg);
}
DRVStepperControl(benable);
break;
}
OSTimeDly(10);
}
}
void TaskSEG(void *Id)
{
char *Msg;
INT8U err;
for (;;) {
Msg = (char *)OSMboxPend(Mbox1, 0, &err);
uHALr_printf("Task2() called\n");
OSSchedLock();
sprintf(print_buf, "Task%c() turned\n", *(char *)Id);
uHALr_printf(print_buf);
User_SEG_Blink();
OSSchedUnlock();
OSTimeDly(10);
}
}
void Main(void)
{
ARMTargetInit();
OSInit();
Mbox1 = OSMboxCreate((void *)0);
OSTaskCreate(TaskLED, (void *)&IdLED, (OS_STK *)&StackLED[STACKSIZE - 1], 5);
OSTaskCreate(TaskSEG, (void *)&IdSEG, (OS_STK *)&StackSEG[STACKSIZE - 1], 13);
OSStart();
return;
}
Embedded_2019-2020/2019-2020嵌入式系统实验综合设计实验报告.pdf
0 → 100644
浏览文件 @
4ed923c6
文件已添加
Embedded_2019-2020/ucos综合实验要求2019.doc
0 → 100644
浏览文件 @
4ed923c6
文件已添加
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录