Dear All.
I have problem when using interupt…
this is my code:
void main()
{
RCM33xxInit();
serCopen(9600);
SendFinish = 0;
SetVectIntern(0x0E,SerialCISR);
WatchDog = VdGetFreeWd(132);
while(1){
VdHitWd( WatchDog );
costate{
wfd Branch();
}
}
}
cofunc void Branch(){
.
.
.
wfd BranchPooling(SendPackage,ReturnPackage,Branch0);
}
cofunc void BranchPooling(Command *Data,ETOP_Thermostats *Result,BYTE BranchNumber){
.
.
.
SendDataBranch0(9600,PARAM_OPARITY,&send,8);
}
void SendDataBranch0(WORD BAUNDRATE,BYTE Parity,WORD *Data,BYTE Length){
BYTE bDataVal;
BYTE bDataDir;
BYTE buffer[23];
BYTE temp;
bDataVal = BitRdPortI(PFDR,4);
bDataDir = BitRdPortI(PFDDR,4);
/* Set the DE */
BitWrPortI(PFDR,&PFDRShadow,1,4);
BitWrPortI(PFDDR,&PFDDRShadow,1,4);
serCwrFlush();
serCparity(Parity);
/* try to disable interupt when sending byte
/* but not work , SCCR value is 0x01 */
BitWrPortI(SCCR,&SCCRShadow,0,0);
/* ERROR on HERE –> */serCwrite(Data,Length);
while (serCwrFree() != COUTBUFSIZE);
while (BitRdPortI(SCSR, 3) || BitRdPortI(SCSR, 2));
/* Clear the DE */
BitWrPortI(PFDR,&PFDRShadow,bDataVal,4);
BitWrPortI(PFDDR,&PFDDRShadow,bDataDir,4);
}
is serCwrite have relation with interupt?
why i only send only 1 byte (should be 8 byte).
how i could using both serCwrite and interupt system?
Best regards,
Hari