Возникла проблема. Есть проект и в одном из циклов есть оператор break. При настройке IAR во вкладке Language1 я указываю следующие настройки.
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;
}
Когда силы уже иссякли я взял с таймером TIM6 (вот отсюда
http://chipspace.ru/stm32-basic-timer/#comment-346 ) и проверил. и в самом деле не работают прерывания когда выбираю C++.
Сообщение отредактировал IgorKossak - Aug 14 2013, 11:19
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!