Eventuell so?
Code:
// Send /////////////////////////////////////////////////////////////
int RS232_send(char *c, int length, int blocking) {
int i=0;
for (i=0; i < length;i++) {
if ((cWriteBufferSize + WritePointer1 - WritePointer0) % cWriteBufferSize >
(cWriteBufferSize - 2)) {
if (blocking) {
while((cWriteBufferSize + WritePointer1 - WritePointer0) % cWriteBufferSize >
(cWriteBufferSize - 2));
}
else {
goto End;
}
}
TXComplete = cTXComplete;
asm("cli");
WriteBuffer[WritePointer1++] = c[i];
if (WritePointer1 > cWriteBufferSize - 1) WritePointer1 = 0;
asm("sei");
UCSRB = (1<<TXEN) | (1<<UDRIE);
}
End:return i;
}
Lesezeichen