Language: C
Language Confomance: Standart with IAR extension
Не работает оператор break. но вызываются прерывания.
При выборе C++ оператор break успешно работает но не вызываются прерывания.
Код
for (i = 0; i < MaxAmountPacket; i++) {
if (PackTurnSend[i].State == EmptyItem) {
PackTurnSend[i].BodyType = PacketType;
PackTurnSend[i].State = State;
PackTurnSend[i].Channel = Channel;
PackTurnSend[i].NumBytes = NumBytes;
PackTurnSend[i].TimeOut = TimeOut;
memcpy(PackTurnSend[i].Buff, buff, NumBytes);
result = i;
break;
}
if (PackTurnSend[i].State == EmptyItem) {
PackTurnSend[i].BodyType = PacketType;
PackTurnSend[i].State = State;
PackTurnSend[i].Channel = Channel;
PackTurnSend[i].NumBytes = NumBytes;
PackTurnSend[i].TimeOut = TimeOut;
memcpy(PackTurnSend[i].Buff, buff, NumBytes);
result = i;
break;
}
Когда силы уже иссякли я взял с таймером TIM6 (вот отсюда http://chipspace.ru/stm32-basic-timer/#comment-346 ) и проверил. и в самом деле не работают прерывания когда выбираю C++.