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í 

Ovladani osmi serv pomoci UARTu
Jdi na stránku Předchozí  1, 2, 3
 
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
K.Pavel
Neregistrovaný





PříspěvekZaslal: čt listopad 20 2008, 18:43    Předmět: Citovat

To je snad zlej sen, Atmega8 nema jedinou plne volnou branu. PA nema vubec, PC obsahuje reset a navic nema vyvedenou 7, PB ma krystal a PD zase UART... hruza des, takze v preruseni citace bude jeste rozhodovani navic, 4 serva na PB a 4 na PC Sad
Návrat nahoru
piitr



Založen: Oct 19, 2007
Příspěvky: 1003

PříspěvekZaslal: pá listopad 21 2008, 8:27    Předmět: Citovat

Tak si na to vyrob tabulku. Index bude 0..8 (číslo serva a doplňující mezera), hodnota bude výstup na dané porty (třeba 2 bajty). Stejně pochybuju, že ti ten překladač rozumně přeloží 1 << n. Já trochu znám PIC16F84, 6502, 8080 a tam taková instrukce není. Takže na Atmelu bych ji taky nečekal. Je třeba na 8086.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
mihal



Založen: Apr 06, 2005
Příspěvky: 1841
Bydliště: Zilina

PříspěvekZaslal: pá listopad 21 2008, 8:44    Předmět: Citovat

1<<n nebude to nahodou rotate n left? To musi poznat kazdy proc ako zakladnu instrukciu, preto to asi poznaju aj vsetky C kompilatory.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
piitr



Založen: Oct 19, 2007
Příspěvky: 1003

PříspěvekZaslal: pá listopad 21 2008, 11:09    Předmět: Citovat

mihal napsal(a):
1<<n nebude to nahodou rotate n left? To musi poznat kazdy proc ako zakladnu instrukciu, preto to asi poznaju aj vsetky C kompilatory.
Já nevím, třeba ji Atmel má, já ho neznám. Ale na těch osmibitech, co znám, není. Tam se to musí řešit opakovaným posouváním o 1 bit, což by v tomhle případě mohlo pokazit časování a prodloužit tu obsluhu přerušení. Proto jsem na to upozorňoval.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
mihal



Založen: Apr 06, 2005
Příspěvky: 1841
Bydliště: Zilina

PříspěvekZaslal: pá listopad 21 2008, 13:29    Předmět: Citovat

Instrukciu posunu napriklad o 3b som nevidel, ale kompilatory C to riesia nasobnym posunom - tu skutocne pride k roznym casom pri roznom posune. Napisat casovo kriticku rutinu v C je hovadina, treba to pisat v asm a posuny dorovnat dummy instrukciami.
Este k tym instrukciam, freescale od HC08 ma instrukciu nibble swap, co je 4-nasobny posun jednou instrukciou.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: pá listopad 21 2008, 13:32    Předmět: Citovat

mihal napsal(a):
Este k tym instrukciam, freescale od HC08 ma instrukciu nibble swap, co je 4-nasobny posun jednou instrukciou.

AVR ji má taky.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
K.Pavel
Neregistrovaný





PříspěvekZaslal: pá listopad 21 2008, 13:32    Předmět: Citovat

s 1<<n neni zadny problem, ale tohle uz je stejne minulost
Kvuli nedostatku pinu tam pujde demux. Povoleni vystupu bude ridit PWM (menici se pro kazde servo).
Jen tam musim doplnit "zatmivaci" impusy pro prepnuti serva, ale treba to bude dostatecne rychle, takze nebudou potreba.
Návrat nahoru
anonym






PříspěvekZaslal: pá listopad 21 2008, 14:01    Předmět: Citovat

Já si jenom tak "rýpnu" Smile

http://avrhelp.mcselec.com/index.html

Kliknout na "Search" a zadat Config servos
Návrat nahoru
piitr



Založen: Oct 19, 2007
Příspěvky: 1003

PříspěvekZaslal: pá listopad 21 2008, 14:28    Předmět: Citovat

Andrea napsal(a):
mihal napsal(a):
Este k tym instrukciam, freescale od HC08 ma instrukciu nibble swap, co je 4-nasobny posun jednou instrukciou.

AVR ji má taky.
PIC taky. Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
piitr



Založen: Oct 19, 2007
Příspěvky: 1003

PříspěvekZaslal: pá listopad 21 2008, 15:06    Předmět: Citovat

Anonym napsal(a):
Já si jenom tak "rýpnu" Smile

http://avrhelp.mcselec.com/index.html

Kliknout na "Search" a zadat Config servos
Otázka je, jestli to zvládne krok 2us. Spíš tam píšou, že by to mělo být 10us. I kdyby to zvládlo míň, tak se změní frekvence výstupu (píšou to tak). Takže bych, řekl, že tohle rýpání je naprd.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
K.Pavel
Neregistrovaný





PříspěvekZaslal: pá listopad 21 2008, 16:07    Předmět: Citovat

anonym:

klidne si rejpej, ale ja to chci cele postavit a naprogramovat sam. Kdybych na tom nechtel nic delat, koupim hotovy modul a vykaslu se i na knihovnu.

ostatni:
existuje nejaky dekadicky citac (jako 4017), ale obsahujici vstup na povoleni/zakazani vsech vystupu?
(4017 ma jen CLK, negCLK, reset a vystupy)
Návrat nahoru
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: pá listopad 21 2008, 16:19    Předmět: Citovat

K.Pavel napsal(a):
anonym:

klidne si rejpej, ale ja to chci cele postavit a naprogramovat sam. Kdybych na tom nechtel nic delat, koupim hotovy modul a vykaslu se i na knihovnu.

ostatni:
existuje nejaky dekadicky citac (jako 4017), ale obsahujici vstup na povoleni/zakazani vsech vystupu?
(4017 ma jen CLK, negCLK, reset a vystupy)

Co tam dát 74HC238 a to čítání řešit sw v procesoru?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
K.Pavel
Neregistrovaný





PříspěvekZaslal: pá listopad 21 2008, 16:39    Předmět: Citovat

Andrea:
ten demux jsem myslel puvodne, pak me napadlo mozne zjednoduseni tim citacem (adresa by se posouvala sama, nemuselo by se nic "zatmivat").

Pristi tyden se dostanu domu, tak zacnu vyrabet HW. Ten demux snad bude stacit.
Návrat nahoru
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: pá listopad 21 2008, 16:45    Předmět: Citovat

K.Pavel napsal(a):
Andrea:
ten demux jsem myslel puvodne, pak me napadlo mozne zjednoduseni tim citacem (adresa by se posouvala sama, nemuselo by se nic "zatmivat").

Pristi tyden se dostanu domu, tak zacnu vyrabet HW. Ten demux snad bude stacit.

Jenže ono se může stát, že se ten čítač posune "sám", když se posunout neměl (rušení) a rázem budeš "mimo mísu" a procesor o tom nebude mít tuchy. Pro nějaké zatmívání nevidím důvod. Na adresní vstupy demuxu přivedeš adresu serva a na ENable přivedeš puls z čítače. Když puls skončí (demux se tím zablokuje), nastavíš další adresu a čítačem vygeneruješ další puls, a tak dál...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
K.Pavel
Neregistrovaný





PříspěvekZaslal: pá listopad 21 2008, 17:18    Předmět: Citovat

U 4017 bych reset ovladal SW, takze v pripade problemu by se odeslala jen jedna spatna davka.

Kdyz uz tam bude demux, tak na jeho enable vstup budu poustet automaticky generovany PWM. Perioda bude 2,6ms a budu menit stridu.
V preruseni vlozim novou hodnotu stridy a prepnu vystup demuxu.
Jsou tady ale dva problemy, OCR1A je v tomhle pripade doublebufferovany a nacita se hned po preteceni, takze pri preruseni uz musim vlozit hodnotu pro nasledujici servo.
Dalsi je, ze v okamziku preruseni vyskoci vystup na 1 a az chvilku potom zmenim vystup, coz se projevi kratkym impulsem na minulem servu. Ted me ale napadlo, ze by se to dalo odstranit invertovanim PWM, takze po preruseni bych byl minimalne 0.1ms na 0.
Pripadne opet pouzit CTC rezim a pri preteceni prepnout adresu a az pak nahodit 1 a hodnotu pro servo ukladat do OCR1B, pri preruseni od ORC1B comp. pak shodit vystup na 0.

To PWM mi prijde takovy cistsi, kazde servo bude dostavat impuls se stejnou periodou (zadnej slepenec a pak cekat) a i v pripade, ze bude preruseni od RX, nebude zadny zpozdeni vystupu.
Návrat nahoru
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 Předchozí  1, 2, 3
Strana 3 z 3

 
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.27 sekund