PIC - měření frekvence

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Datel_new

PIC - měření frekvence

#1 Příspěvek od Datel_new »

Ahoj,chtěl bych se zeptat ,jak lze měřit čas mezi náběžnou hranou prvního impulsu a náběžnou hranou druhého impulsu na jednom vstupu (např PORTA bit0)?
Měl by někdo nějakej příklad,nebo odkaz ?
Díky za každou radu k tématu.
Uživatelský avatar
eljaro
Příspěvky: 441
Registrován: 03 pro 2004, 00:00
Bydliště: Krnov
Kontaktovat uživatele:

#2 Příspěvek od eljaro »

Datel_new

#3 Příspěvek od Datel_new »

Dík.Nějak mi to hlava nebere.Šlo by to nějak vysvětlit ?
Uživatelský avatar
eljaro
Příspěvky: 441
Registrován: 03 pro 2004, 00:00
Bydliště: Krnov
Kontaktovat uživatele:

#4 Příspěvek od eljaro »

přeci na tom nic není nejaký registr pužiješ jako výsledek a jeho obsah inkrementuješ - start inkrementace provebeš jedním vstupem a konec druhým - periodou inkrementace pak zvolíš rozsah mněření - totéž popisují i na tom odkazu - trocha fantazie a jeto - téměř školský příklad ! je to v každé učebnici programování procesorů !
Datel_new

#5 Příspěvek od Datel_new »

Díky za radu.Inkrementace je mi jasná,ale není mi jasný jak programově odchytím všechny vstupní impulsy na daném pinu.
Mohl by mi to prosím někdo polopaticky vysvětlit ? Děkuji.

>je to v každé učebnici programování procesorů !<
To mě prřekvapuje,knížky o programování procesorů mám dvě.Polovina knížky je popis instrukcí.Polovina s té druhé poloviny je popis programu MPLab a v zbylé části je jeden příklad s tlačítky a 7seg. displejem.

Existuje nějaká "dobrá" knížka ,nebo nějaký web o programování v asm ?
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#6 Příspěvek od ViPali »

Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#7 Příspěvek od ZdenekHQ »

Nevím ,jak u PIC, ale u ATMEL to řeším tak, že to pošlu na vývod, kde je přerušení, spustím vnitřní čítač/časovač, a kdykoliv se zavolá přerušení, hodnotu uložím a čítač vynuluju. Lepší je ale provést např. 16 měření a výsledek vydělit 16 (přes rotaci akumulátoru nebo přes div). Jedinej rozdíl je v tom, že to reaguje na sestupnou hranu. Pro pravoúhlý pulsy to chodí dobře, jak máš sinus atd., tak použít tvarovač.
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[?
]
Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 00:00
Bydliště: Bratislava

#8 Příspěvek od ViPali »

Máš viac možností:
1//
clrf POCITADLO
btfss 6,0 ; testuješ pb0 či je 1
goto $-1 ; ak nie opakovať
btfss 6,0 ; už bol 1, tak skočí
goto $+3 ;skončila jednotka tak poskočí ďalej
incf POCITADLO ; inkrementuje pocitadlo
goto $-3 ; spať testovať
btfsc 6,0 ; je stále nula tak kočí
goto $+3 ; skončila nula končím počítať
incf POCITADLO ; inkrementujem pocitadlo
goto $-3 ; spať testovať
movf POCITADLO ; bola nastupna hrana, tak pocitadlo do W
goto ZOBRAZIT

2//
testuješ 0 na PB0
ak príde 1 tak,
povolíš prerušenie od PB0 spádovou hranou
začneš pripočítavať do registra
po prerušení od PB0 otočíš prerušenie na nástupnú hranu OPTION 6
a ďalej pripočítavaš
Po prerušení zobrazíš.

3//
estuješ 0 na PB0
ak príde 1 tak,
povolíš prerušenie od PB0 spádovou hranou
spustíš TMR0 z oscilátora
po prerušení od PB0 otočíš prerušenie na nástupnú hranu OPTION 6
po prerušení zastavíš TMR0
a zobrazíš.
Naposledy upravil(a) ViPali dne 07 zář 2006, 08:39, celkem upraveno 1 x.
Datel_new

#9 Příspěvek od Datel_new »

Díky moc za vysvětlení a informace.
Zkusím se s tím nějak poprat,kdyžtak se zkusím ozvat znovu.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“