Dělění v PIC

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

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

Dělění v PIC

#1 Příspěvek od Chenzee »

Ahoj, mohl by mi někdo prosím poradit, jak se řeší dělění čísla v programu??? To, co jsem vymyslel bylo dosti nepřesné a ve výsledku se vypočítaná hodnota nedala použít :( . Jednalo se mi o to, že jsem pouštěl motor doprava a doleva střídavě na předem nastavenou dobu od 3 do 20s ale na každou stranu se čas nastavoval zvlášť, protože pohyb doleva byl rychlejší než do prava. A právě když nastalo během běhu přerušení uživatelem, potřeboval jsem zastavit a dojet zpět do koncové polohy. Na jedné straně bohužel není koncový spínač, tak jsem se to snažil řešit časově, ale výsledek se mi prostě nepodařilo uspokojivě dosáhnout :oops: (kdybych mohl použít nějaký enkodér, bylo by všechno jednodužší). Berme to jako modelový příklad. Nejedná se mi o rady konstrukční ale o to, jak se dá v programu dělit. Na kalkulačce to jde v pohodě ale v ASM??? Díky za příspěvky :idea:

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#2 Příspěvek od Crifodo »

jestli to není krokový motor, tak bude výsledek neuspokojivý ani když budeš dělit jak sám matematik Gauss, už vlivem nestejných teplot a odporu v ložiskách se ti bude bez znalosti polohy motor bud nedotáčet nebo rvát přes koncovou polohu. Jestli nemůžeš použít koncová čidla, tak tam dej nějakou spojku a motor vypínej indikací skokového zvýšení odebíraného proudu jako to dělají některé tiskárny, magnetofony, skenery a podobná mechanika.

spoj_alfa

násobení(16x16bit) a dìlení(32bit) pro 8bit PIC

#3 Příspěvek od spoj_alfa »

nedávno jsem dìlení potøeboval, bohužel do tohoto fóra nelze kromì obrázkù poslat nic jiného. Podívej se na stránky http://www.volweb.cz/spoj_alfa/ukazky.htm , v sekci "Elektronika>>SA109 Ochrana kotle" je možnost stáhnout dokumentaci, která obsahuje asm soubor s funkcemi násobení a dìlení. Ke správné funkci je potøeba zkopírovat definice uživatelských registrù 31h-4Bh a samotné funkce na øádcích 495-733.

Uživatelský avatar
Maskot
Příspěvky: 1772
Registrován: 19 lis 2004, 01:00
Bydliště: Wien

#4 Příspěvek od Maskot »

Bez snimani polohy to presne nebudes mit nikdy.Pokud je to mozne bud mer it polohu,nebo instalovat i na druhou stranu koncovy spinac.

Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

#5 Příspěvek od Chenzee »

Já vím, že použít koncáky je nejlepší (pokud to aplikace umožňuje) ale mě šlo spíše o to, že jsem narazil na potřebu dělit a zjistil jsem, že na to jsem pravděpodobně krátkej 8O . Tak jsem to sem hodil jako téma k diskusi :wink: . Prostě mě zajímalo, jak to dělají ostatní (jistě mnohem zdatnější) "PICaři" :P Díky za reakce.

Odpovědět

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