Hírek:

Fontos tudnivalók a migrációval kapcsolatban, Kérlek nézd meg a Régi fórumról új fórumra való költözés

Main Menu

Elektronika

Indította gaben, 2025 február 03, 18:18

Előző téma - Következő téma

lari

Értem, köszönöm![#integet2]

keri

És az mire szakít meg?
PIC-ben és Atmelban van egy(több) időzítő ami beállított időközönként az órajelhez szinkronizálva megszakítást tud generálni.
Amikor utoljára néztem a 486-osben ilyen nem volt.
Csak külső perifériával lehet ilyen megszakítást előállítani. Aszinkron felépítésű az egész rendszer.
Ez nem is baj, mert nem ez a feladata. Ha meg ilyen igény merül fel arra egy perifériát kell alkalmazni, mint a nyomtató, hangkártya vagy a modem.

Ezért írtam a hangkártyát, mert a hang kibocsájtása áll legközelebb egy CNC vezérlés pontos időzítés igényéhez.
Ott a hangfelvétel, vagy kibocsájtás esetén fel lehetett programozni a hangkártyát, hogy meghatározott időközönként letároljon vagy kiadjon egy feszültséget és ekkor megszakítást generáljon, hogy be tudd állítani a következő ilyen eseményt.
Persze gyakorlatban ilyen realtime hangkezelésnek, a tanuláson kívül, nem volt értelme mert jól lefoglalta a processzort, de ha nem volt ilyen periféria csak prociból akartam LPT porton léptetőmotort hajtani, akkor kizárólag fix idejű ciklusokra tudtam építeni, amibe beleépítettem feltételes holtidőket kompenzálandó azokat az utasításokat, amit esetleg végrehajt.

Nos ez minden csak nem elegáns megoldás. Működik? Igen. Gyors? Hogyne. Ami az LPT porton kifér, annyit kényelmesen tud a proci. Windowsos rosszabb? Igen, hiszen multitaskingot is kell kezelnie, a sok felesleges csicsa mellet.
Összességében olyan megoldás LPT porton CNC-t vezérelni mint amikor én a hangkártyát byte-ról byte-re etettem a hangmintával. Primitív, felesleges, kerülendő.
Ehelyett felprogramoztam a DMA vezérlőt, hogy a RAMból mettől meddig van a hangminta, és a hangkártya a processzort megkerülve, a DMA vezérlőn keresztül szépen szedegette be magának a byte-okat a megfelelő ütemben. Amikor pedig kiolvasott/írt adott mennyiségű adatot, általában a kijelölt hang terület felénél, akkor generált megszakítást, és csak ekkor foglalkozott a processzor azzal, hogy a hangfile következő darabkáját bemásolja a megadott memória területre. Amit persze megint csak DMA-val oldott meg az ember, így a processzornak alig pár tucat gépi kódú utasítást kellet kezelnie a CD 2*16bit*44100Khz minőségű WAV file lejátszásához.

544if3hez

"hanem felügyelnie kell mindent." Itt a BAJ a KELL. Ha sok dolog van amire figyelni KELL előbb-utóbb valamit kihagy. Ezért a program lefagyás például.  Ezt a hatalom mániások is tudják ugyan ez van a windowsban. Mindent felügyelni akar.  A megoldás a többprocesszoros rendszer a windos egyre többet akar és ehez gyorasabb proceszor kell, hogy ne menjen a válaszidő kárára. Meg újabb processzor, hogy feladatokat vegyenen át mert, a túlzottan uralni akarásba már belefárad az egyszem  processzor. A megosztás elve csak szoftveresen létezik a windowsban. Ha ezt párhuzamos processzorok teszik akkor stabilabb és gyorsabb is lesz a rendszer. Ezért épitették bele a 486-s processzorokba az addig külön processzorként működő matematikai processzort. Fizika "drótos" huzalozott program alapján osztják meg a feladatot, igy gyorsabb." Ha ezt is a windows-nak KELL-ene kezelni még több lefagyás lenne.

 Az iparban ezt használják is. Pl a Propeller mikrogépes alkalmazásoknál. Ott  8 db mikroprocesszor működik együtt és stbailabb műlödést lehet elérni.

"minden oprendszer a memóriában ül, ennek semmi köze a stabilitáshoz vagy a " Hát persze, hogy nincs amikor az operációs rendszer már annyi mindennel foglalkozik és sokféle szemét marad a memóriában  akkor megvan az esélye annak, hogy egy program ráír valamelyik program területére.
Itt a hanyg memória kezelés. Egyszerőbb többet rakni bele mint gondoskodni a már nem futó programok nyomainak eltakarítása. (igaz ez a program iró feladata volna.) Ez külön feladat a processzornak.  Akkor a windows meghal, lefagy. Ugye a windows nem is szokott lefagyni? Ez ugye nem tartozik a stabilitáshoz?

keri

Naja, ez is igaz, hogy bármilyen romantikával nézünk az Assembly-re, emberileg követhetetlen egy adott szint felett.
Kisebb kritikus részfeladatokat jó vele megoldani, minden másra meg valami magasabb szintű programnyelv.

KBalázs

Ez bizony szóról-szóra így mûködött a DOS-os idôkben, Gravis hangkártyákkal, jó móka volt. Meglep hogy Te is foglalkoztál ilyesmivel.[#wave]

000000000

Van egy gyanúm.
Persze, tévedhetek is.
A Windows köznek szánt verzióját nem kifejezetten hobbi CNC alá szánták. meg tán nem is ipari CNC-k kiszolgálására.
Inkább irodai alkalmazások, multimédiás dolgok futtatására és kisebb, nagyobb hálózatok működtetésére. Ezek után talán érthető, hogy mindent kézben akar tartani, ami ezekkel kapcsolatos.

Néhol nyesegetni kell belőle és így azért sok mindenre jó.
Nem tökéletes, de használható.

A hobbi CNC-hez azért nem árt neki egy kis "finomhangolás".

Ha meg csak a grafikus kezelőfelület kell, ott a Win98!
Sokkal nagyobb szabadságot enged hardverügyben.
Nem biztos, hogy mindig a legújabb videólejátszót kell alkalmazni hobbi cnc "hajtásához". Mert hogy most ez a trendi.

keri

Jó kis összefüggéstelen hozzászólás.
Csak onnan tudom hogy nem chat robot vagy, mert azok már 10 éve is relevánsabb válaszokat adtak volna [#hehe]

544if3hez

"időközönként az órajelhez szinkronizálva megszakítást tud generálni."
"Amikor utoljára néztem a 486-osben ilyen nem volt."
Minden processzor órajel szinkronizált.


"Csak külső perifériával lehet ilyen megszakítást előállítani. Aszinkron felépítésű az egész rendszer.
Ez nem is baj, mert nem ez a feladata. Ha meg ilyen igény merül fel arra egy perifériát kell alkalmazni, mint a nyomtató, hangkártya vagy a modem."

 Nos mind a nyomtató mind a modem a Pc interiupt kezelőjét használja. Feladat elvégzését a processzor végzi. ehhez neki tudnia kell mikor, ki kért időt tőle. Az LPT port esetében egy sima interuptot generál. A többi esetében, a modem hangkátya esetében tt a jelfeldolgozás maga a kártyánlévő processzor végzi. Csak akkor kér megszakitást az alaplapi processzortól ha neki küld adatot vgy kap adatot tőle. De ez már egy többprocesszoros rendszer igaz annyiban különbözik, hogy nem az operációs endszer munkájában vesz rézt hanem csak egy speciális programmal foglalkozik jelenesetben a hangfeldolgozással.  

"Ehelyett felprogramoztam a DMA vezérlőt, hogy a RAMból mettől meddig van a hangminta, és a hangkártya a processzort megkerülve, a DMA vezérlőn keresztül szépen szedegette be magának a byte-okat a megfelelő ütemben"

A DMA vezérlő is kér megszakitást a processzortól mert annak akkor nem szabad igénnyel fordulnia a memóriához. Ha ez nem zökkenőmentes akkor van az hogy program vagy adat részek sérülhetnek. A DMA kezelő meg a dinamukus működésű memőria frissitást is elvégzi. Ez bizony mind megszakitás és szinkronizálás a processzornak erről tudna kelle. Szóval van benne megszakítá kezelő.

keri

Nekem mondjuk SoundBlaster-em volt, de ugyan abban a könyvben volt a leírása mint a Gravis-nek :)
Mindig irigykedtem a Gravis-esekre :D akkoriban az volt a csúcsminőség.

544if3hez

"Ha meg csak a grafikus kezelőfelület kell, ott a Win98!"

De DOS-s program is tud grafikus kezefelületet előállítani. Csak ismerni kell a videó kártyák szabványait s a parancsokat használni. A windows sem tesz mást mint használja  a gragikus megjelenítő parancsait. Grafikus módba kapcsolja a videókártyát. Ugye amikor bekapcsolják a PC-t nem grafikus a megjelenítés.

000000000

Ez egyértelmű volt már a maga korában is.
Mivel már ott "kopogtatott" a Win3.1, már nem volt értelme kifejleszteni hozzá a grafikus szervert.
Sóval, rajzolgatni tényleg lehet DOS alatt is.

keri

""időközönként az órajelhez szinkronizálva megszakítást tud generálni."
"Amikor utoljára néztem a 486-osben ilyen nem volt."
Minden processzor órajel szinkronizált. "

Rendben. Nem vitatkozom, mert úgy érzem nem érted a megszakítás kezelő lényegét.
Inkább meghallgatlak, hogy te hogyan képzeled a pontos időzítésű STEP jel kiadását. Mondjuk órajel*1000 időközönként?
Nem ragaszkodok a pontos szintaktikához, elég csak emberi nyelven leírnod.

000000000

Gondoltam, hogy elképzelésed sincsen a dologról.

Sokan nem hiszik, hogy a fehér fény a legösszetettebb szín.
Ettől még így van.

Régen venni akartam egy használt monitort.
Az eladó gyorsan feltett egy végtelenül színes képet. Bízván benne, hogy ezzel majd lenyűgöz.
Én csak annyit mondtam neki, hogy indítsa el a Notepad-ot.
Köpködések közepette megtette.
Én csak azt tudtam mondani, hogy köszi, nem kérem.
Már majdnem anyázásba kezdett, mikor otthagytam.
Pedig, milyen szép színek voltak a képernyőn. Mondja.
Lehet.
Viszont nem volt fehér a képernyő. itt bukott a mutatvány.

ebalint

Kivéve, amikor nem.

Ma már mondjuk tök mindegy.

544if3hez

"Rendben. Nem vitatkozom, mert úgy érzem nem érted a megszakítás kezelő lényegét."

Akkor szivesen olvasom a magyarázatod, hogyan is működik a megszaktás kezelő.

"Inkább meghallgatlak, hogy te hogyan képzeled a pontos időzítésű STEP jel kiadását."
Előbb azt magyarázd, el hogy mihez kell időzítenem a LÉPÉS jelet?

"Mondjuk órajel*1000 időközönként?" Itt meg azt hogy miez a z idő meghatározás minek a feltétele és miért szükséges ez a formula?