Mega a 20 serv
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Re: Mega a 20 serv
K čemu používáš tu EEPROM ? ... ta se používá pro ukládání dat o které nechceš přijít se ztrátou napájení, ale chceš je umět měnit za běhu programu. Většinou se jedná o nějaké konfigurační údaje. A moc často se nepoužívá, jednak se přepisováním nakonec zničí a jednak práce s ní je (vzhledem k rychlosti RAM) extrémně časově náročná. Zkus to vymazání EEPROM jen tak ze srandy nahradit delay();.
Jinak jako pokud je opravdu nutnost hodně moc zapisovat do EEPROM, třeba nějaký kruhový buffer, o který nesmíš přijít, tak je lepší použít externí EEPROM - jak shoří, vyměníš, jedeš dál. A nebo je paměť která je RAM a EEPROM zároveň ... pracuješ s tou RAM částí a šváb po výpadku napájení žije chvilku z kondenzátoru a uloží se do EEPROM, kterou pak zase načte ...
Jinak jako pokud je opravdu nutnost hodně moc zapisovat do EEPROM, třeba nějaký kruhový buffer, o který nesmíš přijít, tak je lepší použít externí EEPROM - jak shoří, vyměníš, jedeš dál. A nebo je paměť která je RAM a EEPROM zároveň ... pracuješ s tou RAM částí a šváb po výpadku napájení žije chvilku z kondenzátoru a uloží se do EEPROM, kterou pak zase načte ...
Re: Mega a 20 serv
EEPROM nepoužívám, ale chtěl jsem zjistit jestli v tom nebude problém. No a asi je, když to najednou funguje. Myslím že je to směr. Samozřejmě se tomu chci vyhnout, ale zatím nevím jak.
Re: Mega a 20 serv
Proto zkus ten delay ... funguje to možná proto, že smazání celé EEPROM způsobí pozastavení programu .... stejně jako delay
Re: Mega a 20 serv
k té EEPROM - ona má vydržet 100.000 přepisů, ale stejně je lepší to neždímat do konce.
navíc se (jako většina EEPROMek) maže na 0xFF (nikoli na 0x00) takže zapsat do všech prvků 0x00 znamená jeden po druhém vymazat na 0xFF a pak přepsat na pravý opak 0x00
Takže pokud to chceš mazat, spíš bych doporučil na to 0xFF (jako se to maže při přepisu chipu).
A bývá zvykem používat EEPROM.update(addr, value), která zapisuje hodnotu pouze pokud se ličí od toho, co tam už je. Takže buňky, které nikdo nepoužil se nemusí při každém startu mazat a zapisovat.
A je otázka, zda je to mazání EEPROM nutné, pokud stačilo pouze podržet reset (čili nechat to nastartovat později, až když je napětí plné a stabilní). Možná by stačilo zapojit mezi reset pin a zem (tedy paralelně k reset tlačítku) nějaký kondenzátor, třeba 1uF.
A přístup k EEPROM je pomalý, je možné, že to mazaní prostě zdrželo setup dost dlouho, aby se věci ustálily. Pokud nepomůže kondenzátor, zkusil bych jeětě začít setup příkazem delay(100), nebo tak něco.
navíc se (jako většina EEPROMek) maže na 0xFF (nikoli na 0x00) takže zapsat do všech prvků 0x00 znamená jeden po druhém vymazat na 0xFF a pak přepsat na pravý opak 0x00
Takže pokud to chceš mazat, spíš bych doporučil na to 0xFF (jako se to maže při přepisu chipu).
A bývá zvykem používat EEPROM.update(addr, value), která zapisuje hodnotu pouze pokud se ličí od toho, co tam už je. Takže buňky, které nikdo nepoužil se nemusí při každém startu mazat a zapisovat.
A je otázka, zda je to mazání EEPROM nutné, pokud stačilo pouze podržet reset (čili nechat to nastartovat později, až když je napětí plné a stabilní). Možná by stačilo zapojit mezi reset pin a zem (tedy paralelně k reset tlačítku) nějaký kondenzátor, třeba 1uF.
A přístup k EEPROM je pomalý, je možné, že to mazaní prostě zdrželo setup dost dlouho, aby se věci ustálily. Pokud nepomůže kondenzátor, zkusil bych jeětě začít setup příkazem delay(100), nebo tak něco.
Re: Mega a 20 serv
Tak jsem vymazal mazání paměti a vyzkoušel ten delay a funguje to
, díky pánové. Ale musí být okolo 2000, jinak to nestihne, ale to možná bude zdrojem. To se ještě vychytá.

Re: Mega a 20 serv
2 sec je teda fakt dlouho a znamená to, že zdroj (teda spíš napajení jako celek od začátku do konce) ten náběh nezvládá.
Jestli tam k tomu tancujou ta serva, tak by je to asi chtělo k napájení připojovat postupně, řešilo by to dvě mouchy jednou ranou
Jestli tam k tomu tancujou ta serva, tak by je to asi chtělo k napájení připojovat postupně, řešilo by to dvě mouchy jednou ranou
Re: Mega a 20 serv
Sokl mám na 4 baterie 18650 spojené sério-paralelně (tzn. výstup cca 8 V), ale pro testování tam používám jen 2. Možná se to se 4 kousky zlepší. Ty 2 sek. mi prozatím nevadí.
Teď začínám řešit vyhodnocování ultrazvuku a rozhodování pohybu.
Teď začínám řešit vyhodnocování ultrazvuku a rozhodování pohybu.
Re: Mega a 20 serv
Tak zatím to teprve ladíš, ale až na to bude čas, tak by to chtělo s těma 2 sec něco udělat. Ideálně aby tam nějaký pípák zahrál pár plechových tónů a několik LEDek zajímavě blikalo - když se bootuje mašina, tak to prostě musí být vidět 

Re: Mega a 20 serv
Musí být vidět ....
.... ne dělá se to z diagnostických důvodů ... když otočíš klíčekem v autě, taky se ti rozsvítí celá palubovka, aby šlo poznat které světýlko je špatné. No ale někdo to chce mít prostě pěkné 



Re: Mega a 20 serv
Pavouk musí být nenápadný
. I tak už to svítí jak vánoční stromek. Všechny údaje mám na oled. Bzučák mi kontroluje nízké napětí baterek.

Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host