ucos移植到c8051f340上的问题,求指点
刚学ucos不久,网上下载的移植程序到c8051f340上就做了两个任务,一个是让LED灯间隔时间闪烁,另一个就是利用串口1发数据,LED灯闪烁实现了,可向串口发数据怎么也实现不了,串口中断根本没执行。以下是部分代码void Task1( void* unused )
{
INT8U i;
unused = unused;
while( 1 )
{
OSTimeDly( 400 ); //OS定义的延时函数,长短由时钟节拍的数目决定
//if (RfBusy == 0) //本系统设定的时钟节拍为10ms
//{
for(i=0;i<32;i++)
{
SendData1buff = SendData1_1;
}
SendTimeDog = 10000;
Uart1TIDelay=400;
Uart1SendBusy=0x55;
SendNum1=1;
SendNumber1=32;
SBUF1=SendData1buff;
//}
}
}
/********************************************
串口1初始化
********************************************/
void UART1_Init (void)
{
SBCON1 = 0x43;
SBRL = 0xf63c;
SCON1= 0x10;
SMOD1= 0x3c;
EIE2 = 0x02;
}
/********************************************
串口1中断程序
********************************************/
void UART1_ISR(void) interrupt 16
{
if(SCON1&0x01) //收到数据,来自无线模块
{
RecData1 = SBUF1;
Pcpointer1W++;
if(Pcpointer1W >= 192)Pcpointer1W = 0;
if(Pcpointer1W == Pcpointer1R)
{
Pcpointer1R++;
if(Pcpointer1R >= 192)Pcpointer1R = 0;
}
SCON1&=0xfe; //收到数据标志位清零
}
if(SCON1&0x02) //串口1向数传模块发数据,设置数据为固定数据
{
if(SendNum1<SendNumber1)
{
SBUF1=SendData1buff;
SendNum1++;
}
else
{
//SendNumber1 = 0;
Uart1SendBusy=0;
//SendNumber1 = 0;
}
Uart1TIDelay=400;
SCON1&=0xfd;
}
}
求高手指点下,本人初学还希望指导下怎么学ucos,能做到移植到片子上和写任务,以后的方向想偏向于硬件。
再次求高手帮助。 没有大神帮帮忙吗???
页:
[1]