OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7630|回复: 8

uCOSII控制DS0 DS1亮灭,修改后的问题

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2011-12-30
在线时间
0 小时
发表于 2011-12-30 13:03:30 | 显示全部楼层 |阅读模式
我是个新手,开发过程中遇到一些问题,特来请教,问题是这样:
我参考 ALIENTEK MINISTM32 实验28 综合测试实验里的无线传书,写了一个在LCD上显示一个按钮的程序,程序上传后一切正常。
后来我又参考ALIENTEK MINISTM32 扩展实验8 uCOSII控制DS0 DS1亮灭,把该实验中的其中一个任务替换成LCD显示按钮的程序,但是程序下载后,LCD是黑色的根本不亮。

请帮忙,谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2011-12-30 13:53:08 | 显示全部楼层
回复【楼主位】HeavenKnell:
---------------------------------
软件仿真,看看死在哪里.
一般LCD_Init函数以后,LCD背光就会亮的.

另外:注意一下,你使用代码的版本要正确.因为V1.8及以后的液晶版本,背光控制和之前的刚好相反!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2011-12-30
在线时间
0 小时
 楼主| 发表于 2011-12-30 14:14:31 | 显示全部楼层
感谢原子老师,我是先写好一个LCD的代码,测试了没有问题,然后又把uCOSII的代码移植过来的,应该是移植过程中出了一些问题,调试发现走到Touch_Init()这句的时候卡住不动了,我注释掉这句之后,LCD依然是黑的。
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2012-1-1 20:08:22 | 显示全部楼层
在TFT 显示东西的时候请把任务调度器锁起来  完了再解锁试试  一切初始化请放在 OS初始化的前面   试下
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2011-12-30
在线时间
0 小时
 楼主| 发表于 2012-1-4 15:19:07 | 显示全部楼层
void TaskStart(void * pdata)
{
pdata = pdata; 
OS_ENTER_CRITICAL();   
OSTaskCreate(TaskLed, (void * )0, (OS_STK *)&TASK_LED_STK[LED_STK_SIZE-1], LED_TASK_Prio);
OSTaskCreate(TaskLed1, (void * )0, (OS_STK *)&TASK_LED1_STK[LED1_STK_SIZE-1], LED1_TASK_Prio);
OSTaskSuspend(START_TASK_Prio); //suspend but not delete
OS_EXIT_CRITICAL();
}
是创建任务出的问题,
OSTaskCreate(TaskLed, (void * )0, (OS_STK *)&TASK_LED_STK[LED_STK_SIZE-1], LED_TASK_Prio);
OSTaskCreate(TaskLed1, (void * )0, (OS_STK *)&TASK_LED1_STK[LED1_STK_SIZE-1], LED1_TASK_Prio);
这两句,注释掉之后都正常,但是我main函数里并没有调用TaskStart方法,不知道是为什么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2012-1-4 16:14:25 | 显示全部楼层
回复【5楼】HeavenKnell:
---------------------------------
有时候就是这么怪异的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2012-8-11 09:44:03 | 显示全部楼层
有一个疑问啊,原子在TaskStart中直接把自己给挂起了,但是这个时候仍在临界状态,回不回有问题啊,不懂求解
努力,前进。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2012-8-11 10:18:53 | 显示全部楼层
不会.
回复 支持 反对

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2012-8-11 11:17:59 | 显示全部楼层
按照任哲在书中说的,操作系统一般不喜欢在任务还没开始的时候就接收到时钟中断,所以将对时钟的初始化放在了TaskStart中进行初始化,这样时钟初始化完毕就进入了  统计任务(假设有),进行时钟同步,然后开始创建任务,按照原子你写的将对时钟的初始化放在了前面,所以你在创建任务的时候设置了临界区域,然后再把TaskStart挂起,但是感觉也没必要设置临界区域啊,因为创建任务时需要进入临界区域的地方都已经设置了,感觉没必要
努力,前进。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 14:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表