[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ő
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ő 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őlistát, stb.).
> Hogyhogy nincs értelme? Szerinted a kezdő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űködik. Nem ideális esetben nem mű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ű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ő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ő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ő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