[elektro] Pickit 2

Acs Gabor agabor at electrodesign.hu
Tue May 27 10:41:48 CEST 2008


Szerintem az optimalizálás összetettebb programoknál kavar be inkább, ami 
már nem a kezdő ismerkedési pontja. Nem tudom, a Te fordítód hogyan 
dolgozik, nekem a CCS olyan, mintha beépülne az Mplab-ba. Ha megnézem a 
kódot 'Disassembly Listing' módban, ott vannak felváltva a C és az Assembly 
sorok. Gyönyörűen követhető, ha valami alap funkciót leírok C-ben, abból ő 
pontosan azt az Assembly kódot csinálja, amit én is írnék (mert csak úgy 
működik). Tehát a kezdő megírja a LED villogtatóját, és látja, hogyan 
valósul ez meg processzor nyelven. Aztán megírja a Hello World-öt, és látja, 
hogyan inicializálódik a soros port, stb. Ha felhasználod a fordítóval 
kapott IIC kezelést (mondjuk külső eepromba írsz), és végig követed annak az 
include fájlját, még azt is egyszerűen megértheted, milyen szekvenciákkal 
bizgeti az mu a másik IC-t. Lehet, hogy csak nekem tűnik ez egyszerűnek, de 
ha tanár lennék, lehet hogy így próbálnám megközelíteni az egészet.

Annyiból igaz, hogy elfedi a hardvert, hogy nem nekem kell kitalálni, mit 
írjak az egyes regiszterekbe ahhoz, hogy rendesen működjön. Ebből a 
szempontból elkényelmesíti az embert. De amivel én itt vitatkoztam, az nem 
ez a kérdés volt, inkább István kioktató 'stílusa' nem tetszett, és amiket 
leírt a CCS-ről, azok hozzá nem értést tükröztek (ami nem lenne baj, csak 
akkor ne bántsa a kérdezőt).


Gábor

----- Original Message ----- 
From: "hg12345" <hg12345 at freemail.hu>
To: <elektro at tesla.hu>
Sent: Tuesday, May 27, 2008 8:26 AM
Subject: Re: [elektro] Pickit 2


Hi!

Kár a vitatkozni, azok a C forditók ahol optimalizálás van ott még
kevésbe lehet megtudni (megtanulni) mit csinál a forditó és hogy kezeli
a uC-t.
A kód HW vezérlés esetén csak optimalizáció után és egy halom volatile
beirásával lesz egyáltalán használható. Kérdéses ez mennyire segíti a
tanulást?

Aki tanulni akar és még a szükség is segíti annak mindegy min és
hogyan tanul, elöbb utobb talán rájön a megoldásra.

Szerintem teljesen mindegy hogy kódolod a HW periféria kezelést és
milyen nyelven írod! Ha nincsenek meg az elméleti alapjaid, és ezt nem
tudod elolvasni ill, nem tudod valaki mellett megtanulni akkor még a
legjobb kódoló is gyenge igen zavarérzékeny programot fog produkálni
egy uC rendszerre.  (Ami nagyon nagy kár ilyen könyv vagy leírás nincs,
vagy ami számomra szomorú talán csak én nem találkoztam vele :-(.

...........................

szerintem bármely C-ben minimum két féle képpen tudod a port bit
definiciót megoldani
volatile struct {
            unsigned PA0:1;
           ..................
            unsigned  PA5:1;
} PORTA;

#define   PortABit5                    PORTA.PA5

#define   SetPortABit5()            PORTA.PA5=1


a felhasználás :

PortABit5=1;
vagy
SetPortABit5();

Hogy a makrokat beépítették gyárilag a forditóba az kit zavar? (kicsit
kellemetlen amikor esetleg valaha más C-re kell portolni...) Egy kezd&#337; 
a
gyári headereket ugyan úgy nem fogja elolvasni,mint a gépkönyvet, ha
már olyan aki nem olvas. A CCS-t nem használtam, de megnéztem egy
kezd&#337; gyorsabban célt ér vale mint a GNU-val, nem kell linker script,
nem kellenek bizonyos gyári headerek, vagyis az indulás gyorsabb.





> 2008/5/26 Acs Gabor <agabor at electrodesign.hu>:
> > Bocs, ennek a mondatnak semmi értelme:
> > "De
> > "továbbra is fenntartom, hogy CCS-el nem lehet megtanulni a
> > "kontrollerek használatát pont azért, mert nem szokás elolvasni a
> > "használati utasítást (vagy fórumot, levelez&#337;listát, stb.).
> Hogyhogy nincs értelme? Szerinted a kezd&#337;knek el szokásuk olvasni a
> fordítóhoz írt használati utasítást? Látnak a mintaprogramban
valamit,
> ami ideális esetben m&#369;ködik. Nem ideális esetben nem m&#369;ködik, és
akkor
> nem tudják, hogy mi a probléma. Ha nem látnak a felszín alá, akkor
> sosem fogják átlátni a m&#369;ködést.
>
>
> > Egy C-fordítóval nem a controller használatát kell megtanulni. Ez
nem a CCS
> > sajátossága, hanem minden fordítóé.
> Mintha valami ilyesmit írtam volna én is. Nem olvastad? A többi C
> fordító legalább közelebb van a hardverhez _alapértelmezetten_ is.
>
>
> > Ha pedig ismered, hogyan kell használni a CCS-nél a portokat úgy,
hogy ne
> > TRIS-eljen, akkor miért írod ezt:
> > "A CCS-t meg azért említettem, mert a példaprogramok függvényt
> > "használnak egy portláb magas szintre állításához is (pl.
> > "output_high(pin_b5)). Ez pedig nem csak egy BSF PORTB, 5 (vagy
18F
> > "esetén BSF LATB, 5) utasításra fordul alapértelmezésben, hanem
állítja
> > "a TRISB, 5 bitet is, ennek megfelel&#337;en bankváltást csinál, stb.
> >
> > Ha tudod, hogyan kell elérni a regisztereket közvetlenül, miért írod
ezt:
> > "A regiszterek sem érhet&#337;k el közvetlenül, hanem szintén csak
> > "függvényekkel (persze meg lehet hekkelni, de ez már más téma).
Ezen
> > "nem lehet megtanulni a kontroller használatát, mert nagyon el van
> > "rejtve a hardver.
> Ezek el&#337;l valóban kimaradt az, hogy alapértelmezetten fordítja így.
>
>
> > Ez nem hekkelés, és nincsenek elrejtve a regiszterek, meg a
hardver.
> Ja, csak a példaprogramok valahogy nagyon úgy néznek ki, hogy
> igyekeznek elrejteni.
> >
> >
> > Szóval ezeknek az érveléseknek nincs semmi értelme, van egy
olyan érzésem,
> > hogy Te nem vagy képes kimondani azt, hogy 'bocs, kicsit
túlreagáltam
> > valamit' Vagy, hogy: 'nahát, ezt eddig nem is tudtam'. Ha valaki
csak
> > izomból akar vitázni logikus érvelés helyett, na az a fölösleges
szócséplés,
> > ami helyett akár értelmes dolgot is csinálhatnánk.
> Pedig pontosan tisztában voltam minden itt említettel.
> -----------------------------------------
>           elektro[-flame|-etc]
>

_______________________________________________________
A 79. Ünnepi Könyvhét újdonságai!
http://bookline.hu/control/news?newsid=1378&tabname=book&affiliate=freukhkar6060

-----------------------------------------
          elektro[-flame|-etc]

 _____________ NOD32 3133 (20080526) Információ _____________

Az üzenetet a NOD32 antivirus system megvizsgálta.
http://www.nod32.hu




More information about the Elektro mailing list