Stránka 1 z 1

Vypocty v PIC

Napsal: 08 lis 2008, 16:31
od UnReSt
Dobry den, dala by sa v PICke softverovo poriesit tato uloha?

Potreboval by som snimat otačky kolesa (1 otačka = 1 impulz). Potrebujem aby sa pocitala doba trvania jednej otacky, a následne aby sa ta doba delila určitym pevne stanoveným cislom.

Ako vysledok dostanem nejaku hodnotu T a z tejto hodnoty mikrokontroler vypocita frekvenciu vzorcom f=1/T. Nasledne potrebujem aby sa generovaly impulzy o tejto vyslednej frekvencii.

Da sa cely tento postup naprogramovat v asemblery pre PIC ???

Dakujem.

Napsal: 08 lis 2008, 16:52
od Ragnol
K čemu ti bude vedět jaká frekvence ti z toho má lízt ? Není jednoduší to T co ti vyjde vydělit dvěma a to rovnou posílat ven ? 1/2T v log1 a druhá polovina v log0. A nemusíš řešit 1/T.

Napsal: 08 lis 2008, 17:04
od UnReSt
Asi presne nerozumiem o co ide ale zda sa mi to komplikovanejsie, aj tak musim vediet T (teda to musi vediet PICka), proste tymto spôsobom chcem aby mi to generovalo impulzy a ich frekvencia bude zavisla od rýchlosti, resp. otacok.

Napsal: 08 lis 2008, 17:11
od Ragnol
Psal jsi že změříš jednu otáčku ... tu vydělíš nějakým číslem a vyjde ti T. tak to T vyděl dvěma a vyjde ti čas půl periody. Tzn doba trvání jednotlivejch logickejch úrovní. Pokud časovač nastavíš na T/2 a budeš při přerušení negovat nějakej pin na kterým chceš tu frekvenci dostaneš na výstupu frekvenci rovnou f=1/T

Napsal: 08 lis 2008, 17:13
od UnReSt
Uz chapem, a tak teda da sa nejako v asemblery toto naprogramovat pre PIC?

Napsal: 08 lis 2008, 17:16
od Ragnol
UnReSt píše:Uz chapem, a tak teda da sa nejako v asemblery toto naprogramovat pre PIC?


Dělám s avrkama a tam by o šlo úplně v pohodě. A nevidím důvod proč by to nešlo na picech.

Napsal: 08 lis 2008, 17:18
od UnReSt
OK, tak to sa ešte musim lepsie naucit programovat, vsetky prikazi nepoznam, v skole nas doteraz ucili 8051 a PICky len ako samostudium som zacal az teraz.

Napsal: 08 lis 2008, 17:53
od ViPali
Neviem, či správne chápem problém, ale predpokladám, že koleso sa otočí (napr.) 4x za minútu. Jedna otáčka trvá 0,25 minúty.
0,25 minúty je doba trvania jednej otáčky (podľa tvojej požiadavky).
To chceš deliť určitým pevne stanoveným číslom (akým?) Mňa tak narýchlo napadá číslo 1/60. Potom 0,25x0,0166=0,00416666666.
To bude frekvencia impulzov na výstupe programovaného pinu.
Keď to porovnáš s impulzmi z kolesa a PIC (MCU), tak nábežná hrana, z desiatich impulzov v šiestich prípadoch bude PIC predbiehať impulzy s kolesa a v štyroch bude zaostávať. Inak budú frekvencie úplne rovnaké.
Takže zober frekvenciu z kolesa - to je originál.

Ako program má zmysel, aby si túto frekvenciu previedol na sled štvorbitových čísel a poslal na niektorý port - ako zobrazenie na LED.