找回密码
 注册
搜索
楼主: hztianxie

[讨论] 一个新手的MTK笔记--2010-05-05 开贴

[复制链接]
发表于 2010-5-20 08:57:49 | 显示全部楼层
学习了,讲得很不错
点评回复

使用道具 举报

 楼主| 发表于 2010-5-20 08:59:12 | 显示全部楼层
以下是引用jiandingxiao在2010-5-20 8:57:49的发言:
学习了,讲得很不错

你这么说,我好惭愧啊,我好久没更新了,是在是没时间
点评回复

使用道具 举报

发表于 2010-5-20 12:59:52 | 显示全部楼层
以下是引用hztianxie在2010-5-19 12:16:22的发言:

按键处理直接执行highlight_mainmenu_profiles

一点都不影响速度

比如按键 KEY_UP,找到对应的按键处理MIA_VOL_UP

在CASE MIA_VOL_UP:                进行音量加减的动作,保存到EEPROM里


既然一点不影响速度,那就怎么影响开机速度,你说话不是自相矛盾?

按键中增加高亮函数处理(我不知道可不可以这样处理,我没有试过) 增加了,肯定会影响按键速度,同时 还会影响其他在task中进程任务的处理速度。

你自己体会一下.
点评回复

使用道具 举报

发表于 2010-5-20 17:06:34 | 显示全部楼层
鱼和熊掌不可兼得。MTK的框架如此。楼上的再看看吧。楼主分析的还是很好的
点评回复

使用道具 举报

 楼主| 发表于 2010-5-21 16:43:42 | 显示全部楼层
以下是引用msgrev在2010-5-20 12:59:52的发言:



既然一点不影响速度,那就怎么影响开机速度,你说话不是自相矛盾?

按键中增加高亮函数处理(我不知道可不可以这样处理,我没有试过) 增加了,肯定会影响按键速度,同时 还会影响其他在task中进程任务的处理速度。

你自己体会一下.

我说的是MTK的架构影响开机速度

我说的不影响开机速度的是我的架构。

不过目前我的架构还没在MTK上完全开发出来,我现在在一个模块一个模块的干掉,需要点时间,不是一点点。
点评回复

使用道具 举报

发表于 2010-5-25 16:54:04 | 显示全部楼层
看不懂。。。
点评回复

使用道具 举报

发表于 2010-5-27 15:56:06 | 显示全部楼层
很多情况下,都忙的不能思考。只知道怎么改,确不知道为什么要改。
希望这样的文章越来越多,大家都能思考起来。
不要做只会干活的机器。
点评回复

使用道具 举报

 楼主| 发表于 2010-5-27 16:19:37 | 显示全部楼层
我做了几年的软件,我的总结是

1:写软件,尤其是我们DESIGN HOUSE的软件工作者,说的形象点,就是个收拾房间的人,为什么这么说呢,

原厂给我们的CODE,其实只是个堆满杂物的出租房。

功能基本都具备了,床 电器  厨房 卫生间都有了,但是,地没扫干净,东西乱放。

属性归类不整齐


打个比方,字符串,其实应给统一前缀STR_XXXXX,MTK基本做到了,但是还有很多不是以STR开头的字符串,这样阅读程序不是一目了然。

而且MTK做的太多,把本来是DESIGN HOUSE做的事情都做了,导致了手机DESOGN HOUSE的开发人员普遍水平不是很高。也知道怎么改,也能改好,但是不会去深入问题,很少对MTK原来的代码做出深思熟虑,不会怀疑权威


MTK难道是神,不觉得


我首先承认MTK是一家很牛的公司。我不说MTK不好,只是好了还应该更好。

MTK的键盘锁,我就觉得有待改进。

它只设置了 LOCK1  LOCK2两种类型

LSR+*    RSK+#

但是RSK+*就没考虑到

我觉得应该这样处理

定义开锁1键    LSK或者RSK
定义开锁2键    * 或者  #

这样两两组合,就有四种情况好选,

就算某些机型要求长按某个单键,也比较好处理

长按单键的话,其实也要设置开锁1键,就是按第2个键的时候不同而已。加的语句也不多,两三句而已。
点评回复

使用道具 举报

 楼主| 发表于 2010-5-27 16:23:14 | 显示全部楼层
就拿KEYPAD LOCK来说,我觉得应该作为一个独立的功能,单独成文件

一个头文件,一个源文件,你要调用直接INCLUDE头文件

我极力反对用EXTERN ,我觉得影响阅读。


下面是本人前几天修改的KEYPAD部分函数,基本样子出来了,还剩一个BUG。
//////////////////////////////////////////////////////////////////////////////////////////////////
void MApp_KeypadLock_LockedSrc_Entry(void)//EntryScrKeyPadLockMessage
{
        g_keylock_context.gKeyPadLockFlag = 1;
       
    EntryNewScreen(KPAD_SCR_LOCK_MESSAGE, MApp_KeypadLock_LockedSrc_Exit, NULL, NULL);

#if (ENABLE_KEYPAD_LOCK_KEYTONE)
    playRequestedTone(SUCCESS_TONE);
#endif

#ifdef __MMI_TOUCH_SCREEN__
        ShowCategory64Screen( TOUCH_SCR_LOCKED_MESSAGE_RUNNING_STR, IMG_KPAD_SCR_LOCKED_HELP_MESSAGE, NULL);
#else
        ShowCategory64Screen( STR_KEYPADLOCK_KEYPAD_UNLOCKED,  IMG_KPAD_SCR_LOCKED_HELP_MESSAGE, NULL);
#endif

#ifndef __MMI_KEYPADLOCK_WITH_KEYTONE__
    mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
#endif
/* ÏÔʾ1Ãë,»Øµ½ Idle Screen */
    StartTimer( TIMER_ID_KEYPAD_MESSAGE_LOCK_OR_NOT,  KEYPAD_LOCK_STATUS_SCREEN_TIMEOUT,     DisplayIdleScreen);
/* µ±Ç°²Ëµ¥µÄ°´¼ü²Ù×÷ */
    SetGroupKeyHandler( DisplayIdleScreen, (PU16)PresentAllKeys,  (U8)TOTAL_KEYS, (U16)KEY_EVENT_DOWN);
        g_bEnableFullLight = 1;// ¸Õ¸ÕËøסµÄʱºò£¬È«ÁÁLCD
    TurnOnBacklight(1);
        GpioTurnOnKeypadLight();  
}

void MApp_KeypadLock_LockedSrc_Exit(void)//ExitScrKeyPadLockMessage
{
    StopTimer(TIMER_ID_KEYPAD_MESSAGE_LOCK_OR_NOT);
#if (ENABLE_KEYPAD_LOCK_KEYTONE)
    stopRequestedTone(SUCCESS_TONE);
#endif

    /* In ExitIdleScreen, screen saver timer will not stop when the keypad is
       lock. If the popup is interruped, e.g., by a call, stop the timer. */
    if (!CheckIsBackHistory())
    {
        StopTimer(SCREENSAVER_TIMER);
    }
}

//////////////////////////////////////////////////////////////////////////////////////////////////
void MApp_KeypadLock_UnLockedSrc_Entry(void)// EntryScrKeyPadUnlockMessage
{
        g_keylock_context.gKeyPadLockFlag = 0;
       
    EntryNewScreen(KPAD_SCR_UNLOCK_MESSAGE, MApp_KeypadLock_UnLockedSrc_Exit, NULL, NULL);

#if (ENABLE_KEYPAD_LOCK_KEYTONE)
    playRequestedTone(SUCCESS_TONE);
#endif

#ifdef __MMI_TOUCH_SCREEN__
        ShowCategory64Screen( TOUCH_SCR_UNLOCKED_MESSAGE_RUNNING_STR, IMG_KPAD_SCR_UNLOCKED_HELP_MESSAGE, NULL);
#else
        ShowCategory64Screen( STR_KEYPADLOCK_KEYPAD_LOCKED,  IMG_KPAD_SCR_UNLOCKED_HELP_MESSAGE, NULL);
#endif
/* ÏÔʾ1Ãë */
    StartTimer( TIMER_ID_KEYPAD_MESSAGE_LOCK_OR_NOT, KEYPAD_LOCK_STATUS_SCREEN_TIMEOUT,  GoBackHistory);
/* µ±Ç°²Ëµ¥µÄ°´¼ü²Ù×÷ */
    SetGroupKeyHandler( GoBackHistory,  (PU16)PresentAllKeys,  (U8)TOTAL_KEYS,  (U16)KEY_EVENT_DOWN);
    TurnOnBacklight(1);
        GpioTurnOnKeypadLight();  
}

void MApp_KeypadLock_UnLockedSrc_Exit(void)// ExitScrKeyPadUnlockMessage
{
    StopTimer(TIMER_ID_KEYPAD_MESSAGE_LOCK_OR_NOT);
#if (ENABLE_KEYPAD_LOCK_KEYTONE)
    stopRequestedTone(SUCCESS_TONE);
#endif
}
点评回复

使用道具 举报

 楼主| 发表于 2010-5-27 16:31:41 | 显示全部楼层
void MApp_KeypadLock_Press_Second_Key(void)//normal press,not long press
{
#if (KEYPAD_LOCK_TYPE == KEYPAD_LOCK_PATTERN_LSK)
        SetKeyHandler(MApp_KeypadLock_UnLock_Action, KEY_LSK, KEY_EVENT_DOWN);
#elif(KEYPAD_LOCK_TYPE == KEYPAD_LOCK_PATTERN_RSK)
        SetKeyHandler(MApp_KeypadLock_UnLock_Action, KEY_LSK, KEY_EVENT_DOWN);
#else
        SetKeyHandler(MApp_KeypadLock_UnLock_Action, KEY_POUND, KEY_EVENT_LONG_PRESS);
#endif
}

其实我这里也没按照自己的思路去做,因为我现在没时间,所以尽量在MTK原来的版本上,尽量规范其程序,不想改动太多。而且作为新手,也应该一步一步来,不能一口吃个大胖子,新手一般没这个实力,一碰到问题,就不知道怎么解决了。所以在改的同时,尽量做好备份,万一出问题了,可以对比下改动了什么
点评回复

使用道具 举报

发表于 2010-5-27 22:43:02 | 显示全部楼层
顶一下,楼主精神可嘉。
点评回复

使用道具 举报

 楼主| 发表于 2010-5-28 11:02:24 | 显示全部楼层
关于PWM占空比控制LCD 亮度等等

打个比方,0.1s的时间你分成256份,如果你点亮LED的时间是256份,这时亮度是100,如果点亮时间是128份,则亮度是50,这就是占空比
点评回复

使用道具 举报

发表于 2010-5-30 12:43:51 | 显示全部楼层
LZ钻研精神值得尊敬。
点评回复

使用道具 举报

发表于 2010-6-1 11:22:40 | 显示全部楼层
写的还可以,学习中。。。
点评回复

使用道具 举报

发表于 2010-8-19 16:13:45 | 显示全部楼层
学楼主致敬
点评回复

使用道具 举报

发表于 2010-8-22 21:13:58 | 显示全部楼层
学习了。。。。
点评回复

使用道具 举报

发表于 2010-8-28 20:01:18 | 显示全部楼层
guan zhu zhonging[em02]
点评回复

使用道具 举报

发表于 2011-5-30 11:14:30 | 显示全部楼层
知其然,知其所以然。但对于不同阶层的人,这条标准有点牵强。个人觉得这条标准只能适用在对该行有一定的了解之后的人,对于刚入行(比如我这样的)没人帮忙的话,只会令自己陷入死胡同。有些东西部是说学就能学到的。实践是这行不可缺失的一个环节。有些经验就是从自己的BUG中得到的,经历的BUG越多获得的也许越多!!!个人之见哈 呵呵,楼主说的高亮。我以为是说高亮的基本原理,原来不是。呵呵[em09]
点评回复

使用道具 举报

发表于 2011-5-30 11:46:26 | 显示全部楼层
新手,看不懂啊!
点评回复

使用道具 举报

发表于 2011-5-31 09:40:25 | 显示全部楼层
学楼主致敬[em01][em01]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-4 22:40 , Processed in 0.048610 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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