SuperStar515

个性签名:世界是个圈,人生也是个圈。

    1. 举个简答的例子,比方说你发送0x01,二进制为00000001,最低位为1,从最低位开始读取,这一位对应到程序里就是newRXD = 1,然后Output|=0x80(10000000),然后进行下一次循环;之后的newRXD都为0,循环一次Output往右移一位,依次为01000000 00100000 00010000 ......直到最后00000001 WaitTF0();//等过起始位 这个起始位是什么?真要有这个位的话,那1位起始位加8位数据位一共要读取9位,那这个程序最简单的改法就是让i的初始值等于9了吧?试试看对不对吧? [ 本帖最后由 SuperStar515 于 2011-8-12 01:22 编辑 ]
    2. 成2倍关系应该是移位部分的问题 //接收8位数据位 while(i--) { Output>>=1 ; if(newRXD)Output|=0x80 ;//先收低位 WaitTF0();//位间延时 } 这里应该先收低位再移位(Output>>=1 ; )吧?
    3. SPI同步通讯TXTEPT标志与UTXBUF困惑 2/3337 微控制器 MCU 2011-08-11
      你把U0TCTL和TXEPT的定义部分贴出来看看?:funk: 或者你把整个工程发上来?就这几行代码神仙来了也愁啊:lol
    4. 求助!!! 3/3641 嵌入式系统 2011-08-09
      貌似跟那个帖子的问题一样 在OSTaskDel(OS_PRIO_SELF);或者有任务调度功能的函数之前加上 OSIntNesting=0; //清UCOSII中断标志 OSLockNesting=0; //可不加 试试?
    5. 在OSTaskDel(OS_PRIO_SELF);之前加上 OSIntNesting=0; //清UCOSII中断标志 OSLockNesting=0; //可不加 应该就没问题了,具体你看下OSTaskDel();这个函数定义就明白了 [ 本帖最后由 SuperStar515 于 2011-8-9 13:38 编辑 ]
    6. //调整下顺序试试? while(!(U0TCTL & TXEPT)); // TX Buffer is empty ? U0TXBUF =WriteData;// Send the byte  或者 U0TXBUF =WriteData;// Send the byte  while(!(U0TCTL & TXEPT)); // TX Buffer is empty ?  U0TCTL &=~ TXEPT;//加上这个试试? 或者 把上面这个再调整顺序试试? [ 本帖最后由 SuperStar515 于 2011-8-9 12:58 编辑 ]
    7. UCOS的问题请教下。 3/3432 实时操作系统RTOS 2011-07-24
      用for(i=0;i
    8. 急死了:ucos移植问题,捯饬两天了还没结果 4/3570 实时操作系统RTOS 2011-07-22
      http://www.eetrend.com/forum/100025929 这个应该对你有用的
    9. 急死了:ucos移植问题,捯饬两天了还没结果 4/3570 实时操作系统RTOS 2011-07-22
      //target.c void TargetResetInit(void) { #ifdef __DEBUG MEMMAP = 0x3; //remap --->片外? #endif #ifdef __OUT_CHIP MEMMAP = 0x3; //remap --->片外? #endif #ifdef __IN_CHIP MEMMAP = 0x1; //remap #endif ...... } 问题貌似是出在这里吧?(这个实例程序不大,似乎不需要用到片外RAM或FLASH)        如果运行在片内flash的话MEMMAP就直接设为1,如果运行在片内RAM中的话,就将该寄存器设为2,最后如果是由片外flash启动,需要将该位设置为3,如果该MEMAP设为3,一定要先将GPIO,BCFG设置完后再设置MEMAP寄存器。(如何设置你就自己再百度百度琢磨琢磨吧,我这没有LPC2214的板,感觉LPC2214确实很麻烦) 以下是LPC2300里的一段,你的那段不是很清楚,你对比一下,再试试 void TargetResetInit(void){#ifdef __DEBUG_RAM        MEMMAP = 0x2;                     // remap#endif #ifdef __DEBUG_FLASH        MEMMAP = 0x1;                    // remap#endif #ifdef __IN_CHIP        MEMMAP = 0x1;                    // remap#endif   ...... } [ 本帖最后由 SuperStar515 于 2011-7-22 15:13 编辑 ]
    10. UCOS的问题请教下。 3/3432 实时操作系统RTOS 2011-07-22
      如果你的延时函数和Timer0无关,那么任何时候都可以用;如果有关,那么应该先初始化Timer0。
    11. 请教一个UCOS中断任务的问题 3/5376 实时操作系统RTOS 2011-07-21
      1、答:     UCOSII的中断服务程序中有必不可少的4个部分: OSIntEnter(); //(1) 进入中断,OSIntNesting加1,OSIntNesting>0时任务调度被关闭 OSSemPost(Sem); //(2) 发送信号量,使其他任务进入就绪态 清除中断的响应标志 //(3) 清除中断响应标志 OSIntExit(); //(4) 退出中断,OSIntNesting减1,OSIntNesting==0时任务调度才被打开 按照楼主所说,“发现更高优先级任务”的程序应该是在(2)部分,而此时任务调度是关闭的,要想进行 任务切换,至少得等到这个中断结束(至于任务切不切换,怎么切换,看一下OSIntEnter()和OSIntExit() 的相关内容就明白了)。所以在中断中高优先级的任务是不会被执行的。   2、答:     任务要想切换就必须执行一个任务调度函数OS_Sched()(中断另当别论),最典型的就是OSTimeDly()函数里调用了OS_Sched(),所以低优先级任务被高优先级任务剥夺CPU控制权,要等到低优先级任务执行任务调度函数OS_Sched()之后。如果你的程序从头到尾都没调用OS_Sched(),它永远也不会进行任务切换。至于任务怎么切换看看OS_Sched()相关内容就明白了。总之任务切换时,CPU控制权总是被就绪态的任务优先级最高的任务获得。 [ 本帖最后由 SuperStar515 于 2011-7-21 10:19 编辑 ]
    12. 正在学。。。
    13. ;P 01.08 繁忙的一天又开始了...
    14. 电子工程世界在线研讨 43/25898 为我们提建议&公告 2007-11-16
      OK
    15. 热烈庆祝电子工程世界MCU单片机专题隆重上线! 14/16624 为我们提建议&公告 2007-08-23
      好啊~~~^_^:D :D
    16. 算出你家的电话号码~~~98%准 4/11427 聊聊、笑笑、闹闹 2007-08-17
      加完了又减,乘完了又除,呵呵
    17. 关于C51程序 8/12965 51单片机 2007-08-17
      在一些程序里,用#define进行宏定义的时候,只有宏名,没有宏体,那是代表什么意思呢?
      宏名前面定义过或是取消宏体
    18. 关于C51程序 8/12965 51单片机 2007-08-17
      uint bus_reset     :1;  //总线复位 uint suspend        :1;  //总线挂起
    19. 电工的职业病, 说说看, 你有吗? 2/14834 单片机 2007-08-08
      你是不是皮肤越来越白?头发越来越少?
      ;P ;P ;P 相思病:P
    20. 万年历程序 4/7691 单片机 2007-08-08
      :handshake :) :)

最近访客

< 1/1 >

统计信息

已有1326人来访过

  • 芯积分:-84
  • 好友:7
  • 主题:104
  • 回复:363

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言