导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→RTX51tiny的问题:请高手指点[minomi]

 *第9735篇: RTX51tiny的问题:请高手指点

  
楼 主:minomi 2003年4月2日19:14
 RTX51tiny的问题:请高手指点
我在做一个工程,采用RTX51tny编程,遇到以下问题:
1。当我把波特率从1200变到9600时,发现:波特率越高,系统越不易死机。(通过LED观察)
     我想:这是否和每个任务分的时间片有关?
2。比如我发的数据桢为十六进制16020118,每桢发完后发送0或0xff。
     在1200波特率时,数据都是如此排列的1602011800,可是在9600波特率时
     有时会出现:1602010018,不知为什么?
3.我曾把command任务屏蔽,也还是死机。
 请高手指点。
  
2楼:minomi 2003年4月2日19:19
 这是我的源程序
/* This program using RTX51tny  for 89c2051 controler
conf_tny.a51  be modified:
INT_CLOCK=10000;TIMESHARING=5; */

#include "reg51.h"
#include "rtx51tny.h"
#define uchar unsigned char
#define INIT 0
#define WDT 1
#define COMMAND 2

uchar idata BUFR[4];
uchar pointer;
unsigned int starting;
bit idata START,READY;

/**********************************************/
init()_task_ INIT
{
SCON=0x50;/* mode1:8-bit UART,enable receiver*/
TMOD|=0x21;/* timer0:mode1;timer1:mode2 */
TL1=TH1=0xe8;/* 1200baud,oxf4=2400baud*/
TR1=1;
TR0=1;
ES=1;
pointer=0;
starting=0;
READY=1;
START=0;
os_create_task(WDT);
os_create_task(COMMAND);
os_delete_task(INIT);

}
watchdog()_task_ WDT
{
while(1){
T0=!T0;
os_wait(K_IVL,4,0);/* flash the LED every 40ms once*/
if(START) starting++;
if(starting==400){/*4000ms is the longest time*/
                   READY=0;
   }
if(starting==2000){READY=1;START=0;starting=0;}/*20s must stop!*/
         }
}
void serial() interrupt 4 using 2
{
if(TI)TI=0;
else if(RI){
                 BUFR[pointer]=SBUF;
   SBUF=BUFR[pointer];/* echo the character received */
   while(TI==0);
   TI=0;
   pointer++;
   if(pointer==4){
                   if(READY) SBUF=0;
       else SBUF=0xff;
       while(TI==0);
       TI=0;
       isr_send_signal(COMMAND);
       /*send a signal once every frame*/
                 }
       }

}
command()_task_ COMMAND
{ uchar i;
 while(1)
 {
 os_wait(K_SIG,0,0);/*waiting for signal from serial()*/
 function();/*processing received character*/
 for(i=0;i  <4;i++)BUFR[i]=0;/* clear the buffer*/
 }

  
3楼:minomi 2003年4月3日12:44
 没人回答???急!!!!!

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:请各位老兄帮个忙

[下一篇主题]:紧急问题请教!