Ahoj lidi,potřeboval bych poradit.Pustil jsem se do stavby hlídače poklesu otáček hřídele.Na ní je výstupek,kterej indukční snímač vyhodnotí jako impuls.Hřídel má konstantní rychlost otáčení tj. 300ot/min.Potřeboval bych to tak,když rychlost poklesne o 50%,tak aby sepnulo(rozepnulo) relé.Představu mám takovou,že by ten impuls vyvolal náběžnou hranou přerušení.... a dál bych potřeboval poradit jak to principiálně řešit.Oscilator bych nechal interní tj.4MHz.
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: pá květen 08 2009, 21:38 Předmět:
Zdravim,,,
řešil bych to asi tak že bych zapnul časovač kterej by mě po 1 minutě vyvolával přerušení. a mezi tim bych počítal otáčky pomocí přerušení na někerym pinu, po té minutě co se mi vyvolá přerušení od časovače bych zjistil kolik se těch otáček napočítalo. když by to pokleslo pod uřčitou hranici tak sepnu rele.
to asi nebude to pravý vořechový,protože po minutě se přepálí klínový řemeny.Je potřeba měřit čas mezi jednotlivými impulsy(otáčkami). Jak by se to řešilo softwarově? Při každém impulsu resetovat timer ?
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: pá květen 08 2009, 22:18 Předmět:
to bych asi pak řešil tak že bych počkal až se všechno rozeběhne na těch 300ot/min (jestli je možné) a pak bych od jednoho pulsu zapnum časovač a při druhym pulsu bych ho vypnu a vyčet hodnotu a přepočet bych tu hodnotu na čas a zjistil jak dlouho trvala otáčka a od toho času bych vyhodnotil jestli rele sepnout nebo ne,, při třetim pulsu zase zapnout a při čtvrtym vypnout a přepočítat, atd,,,,
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: so květen 09 2009, 9:42 Předmět:
teďkom když nad tim přemýšlim tak by to šlo i tim nulovánim časovače jak ste psal,,, když otáčka trvá cca 3,3ms tak časocač nastavit aby po řekněme 4ms vyvolal přerušení. při normálnim běhu by se časovač nuloval po 3,3ms akdyž dojde ke spomalení tak by to přesáhlo přes 4ms a tim by se vyvolalo přerušení a tam by jste si ošetřil sepnutí relátka. bylo by dobře toto přerušení počítat a až třeba po 5 přerušení sepnout relátko. tim se vyřeží problém s tim když se sem tam třeba jeden pulz vytratí nebo tak. sloužilo by to pro kontrolu, jestli ta hřídel opravdu zpomalila,,
S tím timerem to bude ono.Jako globální proměnnou bych dal count:integer; ,při přerušení od timeru bych Inc(count); Při přerušení od vstupu impulsu bych nuloval counter (count:=0.V hlavní smyčce bych čekal až count bude větčí než nějaká hodnota obsloužil program a sepnul rele
Nevím jak nastavit oředděličku timeru aby měly tu správnou frekvenci.
Když nastane přerušení např. hlavní smyčka bude vykonávat nějaký kód,nejprve se vykoná ta část kódu v přerušení ? Vrátí se to zpět do místa kódu hlavní smyčky ze kterého to vyskočilo ? (jsem začátečník)
Založen: Mar 21, 2006 Příspěvky: 34100 Bydliště: Bratislava
Zaslal: ne květen 10 2009, 11:10 Předmět:
A nie je to lepsie spravit bez procesora? Nejaky casovac, ktory po vyprsani vypne motor a kazdou otackou (resp. viackrat za otacku - podla potreby) ho resetovat.
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: ne květen 10 2009, 15:18 Předmět:
jak přesne nastavit dělící poměr vám asi moc neporadim, to sem dycky některý nastavim a pak při krokování programu sem to nechal počítat a až mi nastalo přerušení tak sem se kouknul kolik času trvalo než přerušení nastalo
a když nastane nějaký příznak pro přerušení tak se dokončí poslední vykonávaná instrukce, uloží se návratová adresa a provede se skok na adresu 0004h kde začíná vektor prerušení. až si obsloužíte přerušení tak vymažete příznak a zadáte budto return pro návrat na návratovou adresu ale pak si v programu musíte někde zapnout globální přerušení a nebo se vrátit pomocí retfie což je jakoby return na poslední návratovou adresu akorát že se automaticky povolí globální přerušení.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: po květen 11 2009, 9:45 Předmět:
Atlan napsal(a):
co tak inpulzami nabijat kondik a merat napatie na nom. Pouzitim komparatora vyhodnotit pokles otacok
To len tak na okraj
Alebo spustit casovac a ak pretecie tak bol prekroceny cas otacky tj rychlost sa zmensila.
Taky by se k tomu přes procesor dalo připojit PC, nejlépe čtyři jádra a JehoVisty a nějakou malou 100MB aplikací to hlídat a všechno odesílat do Mrkvosoftu....
Ten procesor se nabízí, prográmek je triviální, ale klasickej převodník f/U a komparátor má taky svoje výhody... _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Dobrej nápad,třeba 18F4550 -připojit k PC přes USB ,ale ne JehoVisty (jsem odpůrce).Jdem zásadně pro procesor a to z důvodu dlouhodobý spolehlivosti a přesnosti.
Pro někoho je to triviální záležitost,někdo na to kouká jak divoký prase.Pro mě je to horší,protože mi chybí část znalostí a hlavně zkušenosti s programováním MCU.
Založen: Mar 22, 2005 Příspěvky: 1170 Bydliště: OV
Zaslal: po květen 11 2009, 21:07 Předmět:
Fafejt napsal(a):
Zkusím se s tím nějak poprat...
Však už jsi to vyřešil. Buď budeš měřit čas mezi impulzy nebo budeš měřit počet impulzů za čas. Od toho se právě odvodilo Časovač/Čítač.
Jak nastavit předděličku najdeš v datasheetu. Pokud budeš mít zálohované důležité registry Status, Wreg, apod., tak se netřeba bát,
že by při návratu z přerušení program selhal. To je celkem jednoduchý program. Ani by nebylo třeba nějakého přerušení.
Však už jsi to vyřešil. Buď budeš měřit čas mezi impulzy nebo budeš měřit počet impulzů za čas. Od toho se právě odvodilo Časovač/Čítač.
Jak nastavit předděličku najdeš v datasheetu. Pokud budeš mít zálohované důležité registry Status, Wreg, apod., tak se netřeba bát,
že by při návratu z přerušení program selhal. To je celkem jednoduchý program. Ani by nebylo třeba nějakého přerušení.
Možná teoreticky,ale to je málo.Neni mi jasný,proč ukládat ty důležitý registry.Má to vliv na správnej návrat při přerušení ? Chystám se to psát v MikroPascalu.Impulsy od indukčního snímače jsou dost úzký ,nevím jestli by to program stíhal v hlavní smyčce -proto to ext. přerušení.
Založen: Jun 26, 2007 Příspěvky: 464 Bydliště: Vysočina
Zaslal: út květen 12 2009, 7:05 Předmět:
Záloha důležitých registrů je nutná proto, že v přerušení používáš ty samé registry akorát v podstatě pro jiný program. Tedy při vykonávání přerušení se tyto registry nastavují (mění svůj obsah) dle aktuálních operací a po návratu z přerušení bys měl v místě, kde nastalo přerušení jiné hodnoty těchto registrů. Např. budeš mít operaci sečtení dvou hodnot, po načtení první hodnoty se vyvolá přerušení, to se obslouží ale protože ve W se ti změnila hodnota, po návratu nebude sčítaní dvou hodnot, které potřebuješ ale úplně jiné hodnoty = nekorektní chování programu, zabloudění atd. Týká se to W,STATUS, (PCLATH pokud je to kontrolér kde toto musíš nastavovat, což 12F není )
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: út květen 12 2009, 9:24 Předmět:
Když to píšeš ručně, v každým přerušení na začátku "odložíš" registry používané v obsluze přerušení do zásobníku a na konci si je zase "vyzvedneš" v přesně opačném pořadí, než jsi je ukládal. V jednapadesátkovým asm je na to fce PUSH a POP, u PIC bude nějaká obdoba.
Pokud si je ze zásobníku nevyzvedneš všechny tak, jak jsi je tam uložil, vrátí se ti program někam jinam, než bys to čekal a budeš (někdy hodiny) přemýšlet, proč se to zbláznilo...
Překladače z vyšších jazyků to většinou dělají automaticky, až na to, že zálohují kde co.... _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.