Цитата(Rash @ Aug 7 2013, 09:52)

на новых мк приходится штриховать условие (//)
Код
if (!(SCB_DEMCR & 0x01000000))
потом расштриховываешь и всё нормально работает при отладке. Правда это на STM32F4/
С чем связано ещё не разбирался
О, а можно с этого места по подробнее.
Подключен stm32f103, из IAR прошиваю через ST-LINK, функция расшифровки ногодрыга реализована через DWT - все работает как ожидалось.
Сбрасываю питание - функция перестает работать. Никакие электролиты и пр на питании не помогают. Остальные функции работают как нужно.
CODE
void DWT_Init(void)
{
DWT->CYCCNT = 0;
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
}
uint32_t DWT_Get(void)
{
return DWT->CYCCNT;
}
inline uint8_t DWT_Compare(int32_t tp)
{
return (((int32_t)DWT_Get() - tp) < 0);
}
void DWT_Delay(uint32_t us) // microseconds
{
int32_t tp = DWT_Get() + us * (F_CPU/1000000);
while (DWT_Compare(tp));
}
что я делаю не так?
Цитата(Kot_dnz @ Sep 28 2014, 13:15)

[code]void DWT_Init(void)
{
DWT->CYCCNT = 0;
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
}
Сорри, нашел - не хватало строки
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
интересное проявление баго-фичи...
Сообщение отредактировал IgorKossak - Sep 28 2014, 18:59
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!