Fórum témák
» Több friss téma |
Na jó, az I/O részlegen a 42 meg az 50.oldalon találod meg a megoldást.
A hozzászólás módosítva: Jan 2, 2015
Szívesen elolvasom az "I/O részleget", de nem tudom, ezzel mire akarsz utalni.
Én elismerem, hogy kezdő, sőt alulinformált vagyok, de azért kérek segítséget, mert magamtól nem találtam a megoldást. Az A/D megnézés javaslatot sem értem, mert nem akarok ezen esetben A/D konverziót indítani. Az A/D kikapcsolását szerintem megtettem.
Nem tetted meg az A/D kikapcsolását. A TRIS regiszterekkel az adott láb adatirányát állítod be, az ADCON-t meg akkor kell használnod ha A/D átalakítást akarsz csinálni. Az ANSEL/ANSELH--val lehet beállítani hogy egy láb analóg bemenet vagy digitális I/O legyen. Azért nem mondtam meg rögtön a megoldást, mert meg kell tanulnod adatlapot olvasni.
Köszönöm, ez volt a megoldás. És megtaláltam az IO részleget is, a megoldás leírását a 42 és az 50. oldalon.
Ez se rossz online:
Bővebben: Link
Ezzel a makroval inicializalsz egy megfelelo valtozot. Valoszinuleg strukturat.
struct xxx_t valtozo = SETUP_MESSAGES_CONTENT; Ennek csak akkor van ertelme, ha ismered az adott strukturat.
Ez véleményed szerint elfér egy struktúrában?
Gondolok itt a különálló 0x00-ákra. Ebből a definícióból csak a hosszabb sorok az értékes adatok, ezeket az adatsorokat egymás után kell elküldenem, így a külön álló 0x00-ák nem lehetnek közöttük.. Esetleg egy példát tudnál nekem írni? (Az adott struktúrát ismerem és mindig ugyan olyan vagy is konstans lesz) A hozzászólás módosítva: Jan 3, 2015
Idézet: Teljes mertekben:„Ez véleményed szerint elfér egy struktúrában?”
De ugyanezt leirhatod maskepp is, csak az nem szep:
De ugyanez az inicializator jo lehet egy struktura tombhoz is:
A hozzászólás módosítva: Jan 3, 2015
Köszönöm szépen, ebből már ki tudok indulni..
Annyit had kérdezzek meg, hogy az elnevezés végén mi az a "_t" jelzés?
A példában az "xxx_t" a struktúra típusa, az "xxx" meg a "valami[]" tömb pedig a példányosítása. A típus megadást szokták T végződéssel megadni, hogy meg lehessen különböztetni a példányosítástól. Ha simán létrehozol egy karakter típusú változót,
Megjegyzem a példában a második tömbnek csak 7 eleme volt, ezért killbill példájából csak a második húzható rá változtatás nélkül, de right.data tömb méretét 7-re kell cserélni.
Szerintem az "xxx" meg a "valami" a valtozo neve. Ez a peldanyositas honnan jon? Ilyen a C-ben regen nem volt. Ezt deklaracionak neveztek.
Az _t a UNIX-bol jon, ott szokas a tiposokat igy elnevezni. Idézet: Ez nem igy van, mert egy tomb eseteben (de egy struktura eseteben is) a nem inicializalt elemek nullaval lesznek feltoltve. „Megjegyzem a példában a második tömbnek csak 7 eleme volt, ezért killbill példájából csak a második húzható rá változtatás nélkül, de right.data tömb méretét 7-re kell cserélni.” A hozzászólás módosítva: Jan 3, 2015
Jogos, a példányosítás az objektumorientált részből jött. Maradjunk a deklarációnál.
Köszönöm szépen a kifejtést.
Végül a 3. megoldást választottam a rugalmassága miatt.
Összesen 9 sorozat van amelyek byte-onként 32 byte-os kódsort fognak tárolni. A hozzászólás módosítva: Jan 3, 2015
A fix szélességű változótípusoknál a _t végződés állítólag a C99 szabványból jön (stdint.h definiál int8_t, uint8_t, int16_t, uint16_t ... stb. típusokat). Bővebben: Link
A _t végződés használata - szintén állítólag - saját típusdefiníciókban POSIX környezetben ellenjavallott, mert ott a _t végződés fenntartott. Bővebben: Link
Elkészült egy újabb epizód az oktató videókból:
Bővebben: Link Remélem tetszeni fog. (A folytatása következik...) Idézet: Igen, ami azt erositi meg, hogy a UNIX-bol jon. Nyilvan azert ellenjavallott, mert time_t es sok tarsa definialva van a kulonbozo header-ekben. Szerencsere ez mikrokontroller programozasban nem okoz gondot. „A _t végződés használata - szintén állítólag - saját típusdefiníciókban POSIX környezetben ellenjavallott, mert ott a _t végződés fenntartott.”
PIC18F2423
A Microchip oldalán csak egy kivonatos adatlapot találtam, ami a 12 bites ADC-n kívül szinte semmi érdemi információt nem tartalmaz. Igaz, éppen emiatt vetettem rá szemet, de azért érdekelne még pár dolog. Van valahol valamilyen közös adatlap, amiről nem tudok? A hozzászólás módosítva: Jan 3, 2015
Rögtön a 3. oldalon a keretben:
Idézet: „This document is supplemented by the “PIC18F2420/2520/4420/4520 Data Sheet” (DS39631). See Section 1.0 “Device Overview”.” A hozzászólás módosítva: Jan 3, 2015
Kár, hogy nem szúrta ki a szemem. A végén kerestem ilyen megjegyzést... Köszi!
Tudom, hogy foglalkozol mással is, követem a "munkásságodat" itt az oldalon. Ezért írtam, hogy gondolom nincs idő a kurzust folytatni, vagy a videókat nyomni töménytelen mennyiségben. Én sem tanulok programozást (egy elektronikai középiskolában, végzős vagyok, de a négy év alatt szó sem esett a programozásról). Igazából nem egy bonyolult dolog, csak jópár dologgal tisztában kell lenni, anélkül nem megy. Mint írtam, már ezért a pár fejezetért is hálás vagyok, mert anélkül még most sem tudnám, mi fán terem a mikrovezérlő programozás.
Hp41C, köszönöm a könyvet, le is töltöm, majd olvasom.
Az a könyv, tényleg jó. Érdemes lesz a kezed ügyében tartani, mert szerintem majd menet közben többször belelapozol. (Az új videót már láttad?)
Köszi a visszajelzést! Jó tudni, hogy nem csak a magam szórakoztatására dolgozok ennyit...
Sziasztok!
PIC18-as mikrovezérlőn egy teljes LCD vezérlő rutint átraktam az 1-es lapra. Ahol a főprogramban használok valamit az LCD rutinból ott használtam a pagesel-t a lapváltáshoz, de amikor fordítottam a programot akkor olyan figyelmeztetést dobott ki hogy ennél a mikorvezérlőnél nem szükséges a lap vagy bankváltás így azokat a kódokat nem fordította bele a programba. Miután kivettem az összes lapozást és az LCD rutint is visszatettem az eredeti helyére a program működött, de amikor megnéztem a program memóriát, az LCD rutin fele átlógott az 1. lapra. A főprogramban használok olyan rutinokat amik az 1. lapon vannak és működnek is. Akkor nem értem miért van ez a lapváltás ha egyszer használni sem kell?
Szia !
Én is köszönöm a videókat, és az oldaladon lévő "C" kurzust. Szerintem nem csak a magad szórakoztatására készíted a videókat ! Aki most ismerkedik vele, az rengeteget tud így tanulni. Várom majd a folytatást.
Láttál a chip adatlapján lapokat? Nem is láthattál, mert nincs (vagy felfoghatjuk úgy is, hogy a teljes programmemória egyetlen lapon van).
Idézet: Ebbol a kijelentesedbol arra kovetkeztetek, hogy meg mindig nem tudod, hogy mi fan terem a programozoas. Az a jopar dolog, az azert nem keves. Bit, byte, memoria, stack, binaris szamok, aritmetika, stb... Es ez meg csak az alapok egy resze, hol van meg a programozas maga. „Igazából nem egy bonyolult dolog, csak jópár dologgal tisztában kell lenni, anélkül nem megy.”
Ha előbb lettek volna ilyen videók, fenébe is
Nagyon jó... Pár észrevétel, hogy ne legyen félrevezető a dolog.. Elkezdted felírnia lábak számait és a lábak jobb szó híján neveit. Ez félreérthető is lehet hiszen a PIC típusát nem adtad meg. Gondolom nem minden PIC-nek egyforma a lábkiosztása. Ilyen eseteknél a PIC típusát is ad meg, hogy az adatlapból visszaellenőrizhető legyen az amit mondasz, így elősegítve a tanulást és az adatlap használatát.. Ezek már csak szőrszálhasogatások és csak nézőpont kérdése: És még egy dolog, a CSS-ben sok esetben előre vannak definiálva a portok állapotának állításai, így egy-egy beállítás pofon egyszerű. De ha valaki nem ezt a fordítót használja, akkor annak ezek gondot jelenthetnek. (nekem is probléma volt, persze hamar rájöttem, de akkor is) pl.: ki és bemenetek beállításai, portok alacsony vagy magas szintre való állításai ...stb Ez a kézzel rajzolós kapcsolás zseniális ötlet volt.. + pontot ér...
A pagesel makro egészen másra készült. A 16F -eken a call és a goto utasítás kódja nem tartalmazza a cím felső 2 bitjét, az a PCLATH regiszterből veszi át az ugrás végrehajtásakor. A 18F goto és call utasítása 4 byte -os és tartalmazza a cím összes bitjét.
A kiszámíott ugráskor (movwf PCL) a címszámláló a PCLATU : PCLATH : WREG értéket veszi fel. (16F -en PCLATU nincs.) Mivel az olyan utasítás, aminek az eredménye a PCL regiszterben keletkezik (addwf PCL,f), nem kezeli az átviletl a PCLATH (PCLATU) felé, így csak egy 256 szavas területen (16F), 256 byte-os területen (18F) belül lehet egyszerűen "ugrani". 18F -en a movf PCL,w feltölti a PCLATU : PCLATH regiszter párost. ezután csak a PCL módosítását kell elvégezni. Amenniben a módosítás átvitelt okoz a PCLATH vagy a PCLATU regiszterekbe, azt a programban meg kell oldani a PLC írása előtt. Pl. PCLATH -ba törénő átvitel kezelése:
A hozzászólás módosítva: Jan 4, 2015
Húúú, nagyon köszi! Tényleg igazad van! A manóba! Ezért jó ez a közösség, mert olyan dolgokat szúrtok ki, ami nekem tök egyértelmű, de mégsem jó. Persze, keveregnek az infók a fejemben és próbálok mindent elmondani érthetően. Úgy, hogy egy nagyon kezdő is értse. Köszi a visszajelzést!
Szia!
Nem láttam lapokat az adatlapban. Pár napja kértem segítséget egy másik prblémámmal kapcsolatban és ott írták hogy lehet hogy átlóg a program egy másik lapra ebből következtettem, hogy kéne lapozás. |
Bejelentkezés
Hirdetés |