[elektro-etc] RAM XP

Kovács József kj at faldeko.hu
Tue Oct 5 17:09:55 CEST 2010


>
> Valamint: a bitek ismerete és a programozás között van egy szakadék, 
> amit mindig üresen hagy mindenki. Különben simán érteném, amiről itt 
> szoktatok beszélgetni, de sosem értek semmit. 

Igen, van  egy absztrakció...hogy ne kelljen tudni mi van belül.

Az egyik az adatokra vonatkozik
A másik a műveletekre...

PROGRAMOZÓI szemszögből egyáltalán
NEM érdekel, hogy mi van prociban/gépben belül

Egy viruális világra íródik a program!
Amit programnyelv néven definiálnak
A nyelv és valódi világ közti átjárást
a fordító program biztosítja....!!!


Tegyük fel, hogy 8 áramforrást
akarsz programból ki-be kapcsolni
ill. az egyiket pl. állítani is...

Mi kell hozzá?

Kimenet oldalon, ugy kell
- 8 konatktus
- egy alapjel

Bement oldalon pedig
valami kezelő szerv pl.
- egy kapcsoló
- egy potméter

Fogsz egy microvezérlőt
ami három fontos dologból áll
- regiszterek a külvilág felé I/O
(fizikailag ezek un. port lábként jelennek meg az IC-én)
- regiszterek a matekoláshoz (ALU)
- regiszterek az adat tároláshoz (MEMÓRIA)

Erre a célra egy 8 bites pont jó lesz!
...és elkezdesz elvonatkoztatni.

Azt mondod, hogy hopp...
az egyik 8 bites I/O regiszter pont jó lesz, hogy
a rajat megjelnő-eltűnő TTL szint kapcsolja az áramforrást
(nyilván illesztés kellhet a reléhez pl.)
a masik 8 bites i/O regiszterből 1 bit elég lesz
a kapcsoló kontaktus érzékelésére
A benna lévő A/D pedig majd méri a potméter állást
ami alapján egy porton kiadod az alapjelet, mégpedig
0-255  közötti szám formájában, amiből valami
majd csinál egy analog 0-10 Volt jelt pl az állításhoz...
(a procik zöme tud kiadni direkt PWM-et is pl.)

Ráforrasztod hát.... a procilábakra a dolgokat
és adsz neki tápfeszt..innentől a hw munkára kész!

Kezdheted a progarmot megírni ami majd
müködteti az elvárásod szerint....a cuccot.

Első lépés definiálni az elvonatkoztatásaidat
A proci pl. A B C D E F betűkkel jelőli
az I/O portokat amiket használ(sz)....

Mondjuk az A egyik bitje lesz a nyomogomb kontakt
(pl. a 3. mert az esik jó helyre a NYÁK-on)
Aztán a C a 8 kapcsoló kontakt
Végül az F az alapjel adó

A program....
Port A.3 legyen BEMENET a 3. láb
Port C legyen KIMENET
Port F legyen KIMENET

START
    Port C=0
(mindent lekapcsol, induláskor
mivel a port lábat NULLÁRA huzza)
Port F=0
(Az alapjelet is nullára állítja)
    a HASZNOS rész programja
UGRÁS a START-ra

(ez a modi biztosítja a programod
állandó futását a tápfesz ráadása után
ill a bekapcsolás utáni ismert állapotot
persze lehetne megnézni is, mi menyni...
...ha nem lehet pl, kikapcsolni csak úgy...)

a hasznos rész programja
--------------------------
Port A.3 KIOLVAS
HA Port A.3 MAGAS AKKOR SEMMI
    EGYÉBKÉNT Port C= Port C NEGÁLVA

Azaz, ha a nyomógobbal földre húztad
a hozzá rendelt port lábat, akkor
a kimeneti lábakat az elelnkezőjére váltja
(gombnyomásra felváltva ki-be kapcsol)

Nézzük az alapjel képzést....

AD BEOLVAS
Port F=AD_értéke

nyolcbitea AD estén ugyebár
negyed állásban =256/4=64
fél állásban=256/128=128
90%-nál 256*0,9=230
(egészre kerekítve. mivel integer számként
IS lehet egy port 8 lábára gondolni....)

Ezzel megvan az hogy ha tekered a potit
akkor az F port 8 lábán változik a
kettes számrendszer szerinti  ábrázolásnak
megfelően a Hi-Lo szintek mintázata

...innen lehet tovább bonyolítani :-)
pl. nem szabad eltekerni a potit csak
bekapcsolt állapotban...? akkor...
ezt a feltétetlt viszgálni kell!
Ilyesmi lesz a programrész...


HA Port C=255 AKKOR
     AD BEOLVAS
     Port F=AD_értéke
EGYÉBKÉNT SEMMI


A progarm nyelv persze angolszerű nyelvet használ :-)
Ilyesmit...

IF Port C=255 THEN
     AD IN
    Port F=AD
ENDIF


Szóval tényleg nem kell soakt tudni a cucc belsejéről!
Elég magas szinten lehet elvonatkozattani tőle...

Persze azt a mags szintet afordító program
átfogja írni többszáz proci szintű urtasításra
DE !! az alapvetően nem tartozik már rád....

Kivéve,

- ha olyan hibás működés van amit
a program nyelv alapján nem értesz, hogy miért?!
Nos ekkor jó tudni, hogy miként
működik  a dolog mélyen belül...

- ha nagyon optimaéizálni kell valamit
és tudod, hogy az elvonatkoztatásodból
TE jobb megoldást is tudsz a proci
számára, mint a fordító program...
(ritka eset, és nagyon komoly tudás kell hozzá)

Kb. ennyi...a tájkép...

KJ



More information about the Elektro-etc mailing list