while (movefoward = 1)
this is an infinite loop!
you want
while(moveforward == 1). "==" checks for equality. "=" assigns a variable.
I belive you have to call PutData all the time, it lets the master processor know the user processor is still alive. Someone who knows more about the IFI stuff can tell you for sure. I would call it every loop.
Edit: Call the PutData function once per loop. So, you have
Code:
void User_Autonomous_Code(void)
{
Getdata(&rxdata);
//do whatever
Putdata(&txdata);
}
So every loop, you get data and put it. The master processor will not let the system work if you don't execute Getdata and Putdata once every loop, but only once! Only call putdata at the very end of every Autonomous loop, so you edit your pwm values and do your calculations, then the very last thing is to Putdata.