Programujete niekto AVRka v C ?
Pretoze v avr-gcc existuje kniznica delay.h, ktora sa by mala riesit problem s cakanim bez prepocitavania frekvencie..
Nema s tym niekto konkretne skusenosti?
Pretoze podla manualu nakodeny procesor akokeby neakceptoval nastaveny cas, ale robi to v inom case.
deklaracia by mala byt takto:
#define F_CPU 1000000UL // 1 MHz
//dalsia moznost #define F_CPU 14.7456E6
#include <util/delay.h>
a volat by sa mala funkcia z kniznice delay:
void _delay_ms () ktora pouziva 16bit counter a mala by zvladnut 262.14 ms / F_CPU v MHz.
Fórum › Mikrokontroléry
AVR delay
![](img/forum_vlakno_help_vyreseno.png)
ja radsi pouzival util/delay_basic.h sou tam jen dve inline asm funkce .. jedna na 8b pocet cyklu a druha na 16b pocet cyklu, o ktery se ma zpozdit.. kazdopadne to moc nezvetsovalo kod :)
jo a urcite musis nastavit tu hodnotu delay jako konstantu.. neda se to zmenit za behu
a pak delaj problemy nektery typy optimalizace.. nejlepsi je myslim -Os
Ja zatim nepotreboval extra presne smycky.
Kdyz jsem delal znamemu cyklovac steracu (programovatelny) tak jsem udelal jednoduchy cyklus f0r (cas=0;cas<nastavenadoba;cas++); a bylo
Kdyz jsem si chvili hral s DS18B20, tak jsem pouzil fintu s UARTem na 115200, plus jeden dalsi pin, ktery povoloval komunikaci s dallasem, abych do nej nepoustel normalni seriovou komunikaci. Pak jsem komunikaci s dallasem resil tak samo, ale se sw emulaci uartu na jinem pinu
často je problém s tím, že nemáš povolený optimalizace. Bez nic h to nechodí. Doporučuju O0.
Abys nemál začátečníky.
Knihovna util/delay.h chodí právě se všemi optimalizacemi kromě O0.
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
AVR Toolchain 3.3.0 + AVR studio + ATTiny26 - mala rada — založil xhans69
Oneskorenie - delay — založil Grungy
Časování minimání delay — založil Interrupt
Avr a C — založil pali6
Moderátoři diskuze