[elektro] CD4017-el ULN2003 meghajtása
potyo
potyo.ada at gmail.com
Tue Jul 19 21:40:02 CEST 2011
2011. július 19. 20:44 Szilágyi Péter írta, <sysypet at hdsnet.hu>:
> Első olvasatra kb ugyanaz a terhelés az MCU-nak, mint az én megoldásomban.
> A kijelzőt kénytelen voltam megszakításosan szkennelni, mert különben
> sztohasztikusan villogott (GIE tiltása) és a megrendelő visszaküldte, hogy
> ez így szar. Most be van ágyazva a kijelző megszakításába a DS
> kommunikációja, így nem villog, csak már nem bírja a plusz megszakításokat.
> Kicsit bonyi lett a TMR0 megszakítása, mert a billentyűzetet is ez kezeli
> le. Most átgondolom a CCP module használatát. Nem tűnik egyszerűbbnek.
>
Nemtudom, nekem akkoris furcsa, hogy ne tudná ezeket kielégítően kezelni.
Esetleg valami olyan dolog van a kódban, ami valahol nagyon megakasztja a
kód futását, mint pl. osztás, printf, ilyesmi? Amit leírtam, annak érzésem
szerint simán mennie kellene még alacsonyabb órajelen is.
> Lehet, hogy mégiscsak HW csere lesz belőle. A 16F1827 állítólag 8mips vs.
> 16F648 1mips.
>
Állítólag helyett van az adatlap, de valóban 8mips belső oszcillátorról.
>
> sysypet
>
> -----Original Message-----
> From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
> Of potyo
> Sent: Tuesday, July 19, 2011 7:32 PM
> To: elektro at tesla.hu
> Subject: Re: [elektro] CD4017-el ULN2003 meghajtása
>
> Szerintem valami nincs ott teljesen átgondolva. Első körben pl. a kijelző
> multiplexelést felesleges megszakításból csinálni, ha jelenleg abból
> csinálod. A főprogram végtelen ciklusában elég figyelni a T0IF bitet, és
> amikor bebillen, akkor elvégezni, amit most ezzel kapcsolatban megszakítási
> rutinban csinálsz - ha ott csinálod. A kijelző biztosan nem marad le
> semmiről :-))
>
> Következő a DS18B20, aminek a kezelését szintén meg lehet csinálni a
> főprogramból, mivel az egyes bitek olvasásához vagy írásához elég rövid az
> időkeret, így azokat NOP utasításokkal kell mindenképpen megoldani, két bit
> olvasása/írása között viszont ha jól emlékszem, bármennyi idő eltelhet, így
> ez sem annyira időzítésérzékeny. Amire érzékeny, az az, ha egy bit
> írása/olvasása alatt jön megszakítás, de ezt meg lehet úgy oldani, hogy a
> bit művelet előtt tiltani, majd utána engedélyezni a GIE bitet, így a DS
> kezelése rendben lesz. Viszont ekkor ugye elcsúszhat a 100Hz időzítése. Ezt
> viszont úgy küszöbölheted ki, ha használod a CCP modul capture módját.
> Nevezetesen beállítod, hogy pl. feltutó élre reagáljon, és okozzon
> megszakítást is. Amikor a megszakításra ráfut, kiolvasod a Timer1 tartalmát,
> kivonod belőle azt, amit a CCPR1H-CCPR1L regiszterekben találsz, és a
> különbség megadja, hogy mennyivel vagy a megszakítás tényleges bekövetkezése
> után, vagyis ezzel tudod kompenzálni a GIE bit kikapcsolása miatti
> ismeretlen mértékű plusz késleltetést. Itt ekkor felkonfigurálod mondjuk a
> Timer2-t, hogy x idő múlva okozzon megszakítást, amikor pedig az okoz
> megszakítást, akkor meg kiadod a tirisztor számára a gyújtást.
>
> Nekem a fenti alapján bőven elégnek tűnik a 4MHz és ez a kontroller a
> feladatra, maximum kicsit át kell rendezni a hardvert, hogy a 100Hz az RB3
> lábra menjen.
>
> 2011/7/19 Szilágyi Péter <sysypet at hdsnet.hu>
>
> > Zsolt!
> >
> > Meg tudja hajtani, tapasztalatból mondom.
> > Egyébként ugye, nem akarsz mást is csináltatni ezzel az MCU-val?
> > Nekem egy 16F648 hajt egy 3 digites kijelzőt DS18B20 hőmérővel. A
> > TIMER0 adja a kijelző frissítéshez a 4ms megszaggatást.
> > Már a DS18B20-at is szinkronizálnom kellett a TIMER0-val, mert elég
> > szigorúak az időzítések a kommunikációban.
> > Most kitaláltam, hogy a mért hőmérséklettel arányosan egy soft PWM
> > jelet is generálok, ami egy tirisztoros fázishasításos szabályzót fog
> üzemeltetni.
> > A 100Hz nullátmenet az INT lábon jön be és a TIMER2 fogja a
> > fázishasításhoz eltolni a tirisztor gyujtójelét.
> > Ha finoman akarok fogalmazni akkor azt mondanám, hogy 4MHz órajel
> > mellett összetojta magát az MCU.
> > Vagy én csinálok valamit rosszul? Van valami szofisztikáltabb módszere
> > ennek,hogy bírja a proci ezt a terhelést?
> > Persze anélkül, hogy dsPIC33-ra kellene váltanom 16mips mellett. Vagy
> > túl nagyok az elvárásaim egy ekkora MCU-tól?
> > Valaki mondta a nagyjaink közül, hogy merjünk nagyokat álmodni.
> -----------------------------------------
> elektro[-flame|-etc]
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list