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