Nove AVR - SIGROW.OSC20ERR5V

Jan Waclawek konfera na efton.sk
Čtvrtek Duben 30 14:51:42 CEST 2020


:-)

Len taka poznamka na okraj, to makro moze pokazit miesta, kde sa pocita s
tym, ze ten F_CPU bude konstanta, napr. delay.h (mozno ziadne ine ani nie
je, vid dokumentaciu k avr-libc). Nie zeby som delay.h doporucoval...

wek



----- Original Message ---------------

>Dokonce i víc, ale měl jsem noťas na židli u osciloskopu, tak jsem na to asi koukal moc šikmo:-)
>
>Díky. Funguje i tady.
>
>PH
>
>Od: Jan Waclawek
>
>>#define F_CPUnom 20000000L
>>#define F_CPU (F_CPUnom + (F_CPUnom * (int8_t)SIGROW.OSC20ERR5V) / 1024L)
>>
>>Dal jsem v 1kHz přerušení invertovat port. Bez korekce osciloskop ukáže 503,něco Hz, takto 500,9. Stejně dopadl i _delay_ms z delay.h.
>>
>>Zajímavé je, že veškeré pokusy o použití >>10 místo /1024 selhaly a lezly z toho ňáký MHz. A to včetně varianty, kdy jsem místo (int8_t)SIGROW.OSC20ERR5V) dal natvrdo 6L.
>
>A dal si dostatok zatvoriek?
>
>  a = (F_CPUnom + (F_CPUnom * (int8_t)6L) / 1024L);
>a = 20117187
>  a = (F_CPUnom + (F_CPUnom * (int8_t)6L) >> 10);
>a = 136718
>  a = (F_CPUnom + ((F_CPUnom * (int8_t)6L) >> 10));
>a = 20117187
>



Další informace o konferenci Hw-list