Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

měřič pulsů s 12F675
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Fafejt
Neregistrovaný





PříspěvekZaslal: pá květen 08 2009, 20:58    Předmět: měřič pulsů s 12F675 Citovat

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.
Návrat nahoru
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: pá květen 08 2009, 21:38    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Fafejt
Neregistrovaný





PříspěvekZaslal: pá květen 08 2009, 21:57    Předmět: Citovat

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 ?
Návrat nahoru
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: pá květen 08 2009, 22:18    Předmět: Citovat

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,,,,
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: so květen 09 2009, 9:42    Předmět: Citovat

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,,
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Atlan



Založen: May 10, 2004
Příspěvky: 4513
Bydliště: Košice

PříspěvekZaslal: so květen 09 2009, 11:16    Předmět: Citovat

co tak inpulzami nabijat kondik a merat napatie na nom. Pouzitim komparatora vyhodnotit pokles otacok Smile

To len tak na okraj Smile

Alebo spustit casovac a ak pretecie tak bol prekroceny cas otacky tj rychlost sa zmensila. Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Fafejt
Neregistrovaný





PříspěvekZaslal: ne květen 10 2009, 7:42    Předmět: Citovat

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:=0Wink.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)
Návrat nahoru
rnbw



Založen: Mar 21, 2006
Příspěvky: 34100
Bydliště: Bratislava

PříspěvekZaslal: ne květen 10 2009, 11:10    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: ne květen 10 2009, 15:18    Předmět: Citovat

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 Smile

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í.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: po květen 11 2009, 9:45    Předmět: Citovat

Atlan napsal(a):
co tak inpulzami nabijat kondik a merat napatie na nom. Pouzitim komparatora vyhodnotit pokles otacok Smile

To len tak na okraj Smile

Alebo spustit casovac a ak pretecie tak bol prekroceny cas otacky tj rychlost sa zmensila. Very Happy


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.... Laughing

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Fafejt
Neregistrovaný





PříspěvekZaslal: po květen 11 2009, 20:37    Předmět: Citovat

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.

Zkusím se s tím nějak poprat...
Návrat nahoru
Banda



Založen: Mar 22, 2005
Příspěvky: 1170
Bydliště: OV

PříspěvekZaslal: po květen 11 2009, 21:07    Předmět: Citovat

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í.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Fafejt
Neregistrovaný





PříspěvekZaslal: po květen 11 2009, 22:01    Předmět: Citovat

Banda napsal(a):

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í.
Návrat nahoru
Chenzee



Založen: Jun 26, 2007
Příspěvky: 464
Bydliště: Vysočina

PříspěvekZaslal: út květen 12 2009, 7:05    Předmět: Citovat

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í Wink )

CH.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: út květen 12 2009, 9:24    Předmět: Citovat

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[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.17 sekund