Atmel studio / GCC - oprimalizace
Pavel Hudecek
edizon na seznam.cz
Středa Duben 1 15:29:53 CEST 2020
ISR (TCA0_OVF_vect) { // 1 ms
tcaSync=1;
ms++;
TCA0_SINGLE_INTFLAGS = 1;
}
Nedovedu si moc představit, jak by se tohle nevešlo do ms:-)
Sériák používá:
void putchar2(char c) {
while ((USART0.STATUS & USART_DREIF_bm) == 0);
USART0.TXDATAL=c;
}
(Normální putchar z stdio dělal rozsypanej čaj i „normálně“, přijde mi že zcela ignoroval USART0_BAUD.)
PH
Od: Jan Waclawek
Pri rozsiahlejsom ISR je mozne, ze jednoducho ten ISR pri -O0 trva dlhsie
nez 1ms.
Vyskusaj nejaky minimalny program.
Ten seriak nie je nahodou simulovany (bitbangovany)?
Este upozornujem na dramaticku zmenu spravania delayov z delay.h pri -O0 -
vid dokumentaciu k avr-libc (konkretne k tomu delay.h).
wek
----- Original Message ---------------
Subject: RE: Atmel studio / GCC - oprimalizace
From: Pavel Hudecek <edizon na seznam.cz>
Date: Wed, 1 Apr 2020 15:12:09 +0200
To: HW-news <hw-list na list.hw.cz>
>Timer normálně generuje přerušení po 1 ms. Od toho je odvozeno různé časování. Mimo jiné se tím snižoval jas jedné LEDky (1:19 ms). Po přechodu na O0 začala blikat v řádu 100 ms. V terminálu to normálně psalo, po O0 jen rozsypanej čaj a je ho mnohem víc než očekávaná délka odeslaného textu.
>
>PH
>
>Od: Jan Waclawek
>
>>(včetně timerů a rychlosti sériáku), jakoby se snížila hodinová frekvence.
>
>Aha takto, toto som nejako prehliadol. To mas nejaky PWM mod na timeri? A
>seriaku sa zmenil baudrate? Ake su presne symptomy?
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20200401/4dd0ac12/attachment.html>
Další informace o konferenci Hw-list