- A fordításvezérlő utasítások (assembler parancsok, direktívák) a fordító programnak szólnak, annak működését vezérlik. A fordításvezérlő utasítások a forráskód részei, de a mikrovezérlő gépi kódú programjában természetesen nem jelennek meg.
- A fordításvezérlő utasítások lehetővé teszik:
- ˇ az MPASM program ki- és bemenő fájljainak kiválasztását, azok egyes jellemzőinek beállítását;
- ˇ feltételes fordítási szerkezetek megalkotását;
- ˇ helyettesítő szimbólumok alkalmazását;
- ˇ az adat- és programmemória-területek lefoglalását és feltöltését;
- ˇ makrók írását;
- ˇ hordozható objektum fájlok létrehozását.
- (Ezek az utasítások megkönnyítik a programozó munkáját, de nem nélkülözhetetlenek. Nélkülük is megírható bármely program, hiszen a végső gépi kódban ezek nem is szerepelhetnek.)
- Minden forráskódnak (az objektum fájlokét kivéve) tartalmaznia kell a PROCESSOR (vagy LIST) és az END kötelező fordításvezérlő utasításokat. Az egyszerűbb programok esetében is hasznos lehet még a BANKISEL, a BANKSEL, az EQU, a #DEFINE, és a FILL fordításvezérlő utasítások használata.
Fórum témák
» Több friss téma |
Fórum » PIC programozás
Szia!
Egy szóval nem említettem, hogy értenék akár forrasztópákához, vagy bármihez is szerintem. Csupán az lett volna a kérdésem, hogy véleményetek szerint mi lenne a legmegfelelőbb döntés erre a feladatra. Aztán ha valaki ad konkrét tippet, akkor megnézzük azt is, valamint a fent említett weboldalon sikerült kicsit több időt eltöltenem az első 10 másodperces ismerkedés után és sikerült kiválasztani egy mikrovezérlőt. Esetleg a választással kapcsolatban is írhatnátok véleményt. Egyébként köszönöm azokat a hozzászólásokat is ahol leírjátok, hogy mihez kellene értenem, mert az is nagy segítség. Nagyjából ismerem a hiányosságaimat, de tudom így legalább azt is, hogy mi az aminek még utána kell nézni. A soklábú beforrasztását egy kedves barátom némi szitkozódás kiséretében vállalta már korábban. A multiplexelés fogalmával tisztában vagyok, hogy mi az, de megalkotni szintén ő tudja. (csak ha szükség lesz rá, viszont egyszerűbb ha nem kell..) Az én feladatom a csapatban a program elkészítése lenne, viszont mindenkinek megvan a maga dolga és ezt a feladatot hogy ide beírjanak a többiek nem vállalták. Nekem se sok időm van, mert eléggé zsúfoltak a napjaim az elkövetkezendő egy hónapban, de ez nem ide tartozik. Tehát ettől szerettem volna megkímélni magam, hogy sokat és feleslegesnek tűnő dolgokat, írjak amit nem sok embernek lesz kedve elolvasni. A kérdés csupán annyi, hogy villogtatni kellene nagyjából 32 ledet és fogadni 16 mikrokapcsoló jelét és erre a feladatra melyik mikrovezérlő lenne a legmegfelelőbb??? Vagyunk ketten akik a programon izzadunk majd és lenne még 1-2 ember aki az áramkörön. Tehát azt a részt, hogy hülye vagy és ne is kezdj hozzá azt szeretném átlépni. Természetesen értékelem ezeket a hozzászólásokat is, valamint egyetértek vele, mivel egyedül kevés vagyok ehhez. Amit sikerült kinézni az a PIC18F66J55 egy webshopban viszont azt láttam, hogy ezután még vannak betűk. Két változatban lehet kapni. Tehát az érdekelne, hogy ez jó-e, vagy nem kell ilyen, egyszerűbb is elég lenne, ötletek, stb. Előre is köszönöm a válaszokat!
Arról ne is álmodj, hogy érdemi segítséget tudunk adni a kiválasztásban anélkül,hogy legalább nagy vonalakban ne ismernénk a feladat követelményeit!
Nem tudom például, hogy mennyire lesz bonyolult a program, belefér-e pl. 4 KB-ba, vagy tényleg kell a 96 KB memória? Szükséged van-e arra, hogy USB illesztő is legyen amikrovezérlődben? A kinézettben ugyanis van... Az is egy alapvető kérdés, hogy 5 V-os, vagy 3,3 V-os rendszerrel akarsz dolgozni? (A J jelzésűek 3,3 V-osak). Mekkora a költségvetés, és mennyire fontos egy célhardver építése? Elvileg lehet kész modulokból is építkezni (léteznek tüskesorra dugható PIM modulok és vannak olyan demó kártyák is, amelyekből ki lehet hozni a kívánt számú jelet (pl. HPC Explorer PIC18F8722-vel szerelve). A forrasztás kérdését azért vetettem fel,mert tapasztalatból tudom, hogy mennyivel nehezebb és komplikáltabb dolog a felületszerelt áramkörökkel dolgozni. A hagyományos DIP vagy SDIP tokozású IC-t meg pillanatok alatt be lehet üzemelni a dugaszolós próbapanelon is. Nem mondtad, hogy mennyire időkritikus a LED-ek kapcsolgatása, de feltételezhető, hogy nem kell MHz-es frekvenciával kapcsolgatni, így egy kis lábszámú mikrovezérlővel is megoldható a feladat, ha a 32 bit kimenet és a 16 bit bemenet shift regiszterekkel vagy a Microchip SPI vagy I2C periféria bővítő IC-ivel (MCP23S017 vagy MCP23017), soros vezérléssel van kivitelezve. A mellékelt ábrán pl. egy 16 bites bementet beolvasó, és optocsalóval leválasztott SPI vezérlésű 16 bites kimenetet meghajtó áramkör vázlatos rajza látható. Áramkörileg a te eseted sem bonyolultabb ennél, csak a kimeneten 16 helyett 32 bitet kell kiküldeni... A hazai beszerzések közül a ChipCAD jön számításba, árlistájukon látod, hogy a kinézett típus van-e raktáron. A tokozás betűjelzéseinek jelentését és a pontos méreteket az adatlap végén megtalálod. P - DIP SP - keskeny DIP SO - SOIC (1,27 mm lábtáv) SS - SSO (0,65 mm lábtáv) PT - TQFP (4 oldalt,kifelé vannak a lábak) ML - QFN (4 oldalt a tok ALATT van a forrasztás!!!) I vagy E a kisebb/nagyobb hőmérséklettartományt jelzi. Idézet: „Csupán az lett volna a kérdésem, hogy véleményetek szerint mi lenne a legmegfelelőbb döntés erre a feladatra.” Az, hogy elkezdesz tanulni, alapokat(elektro, bináris logika, programozás logika, stb.) Hihetetlen mit nem gondoltok magatokról! Sík hülyék vagytok a témához, de 80lábú PIC-el kezdenétek, mert nem tudjátok mi az a multilexelés(illetve még is, de az szerintetek bonyolult!), és a shift regiszter is kínai! Aztán 10 másodperc alatt kiválasztotok egy PIC-et! :taps: Ismén kimondom, NEM KELL MINDENKINEK EZZEL FOGLAKOZNIA! És nem kell mindenkinek feltétlenül segíteni! Nem is értem mit gondolnak itt egyesek, mik vagyunk mi, gépek? Bedobom kiköpi? És ne gyertek azzal, hogy nem segítünk! Vissza kell olvasni! Aki normális kérdést tesz fel, az normális választ kap! Idézet: „Amit sikerült kinézni az a PIC18F66J55 egy webshopban” Add fel, nem fog menni! Idézet: „„Nyilván 32 bites kell, de még így is kidob rengeteget.” Mi a csudáért kellene 32 bites?” Ez a kérdés még tisztázatlan maradt. Miből gondoltad, hogy a "kidobott" sok típusszám 32 bites mikrovezérlőket takar? S hogyan fogod programozni, ha nem tudod, hogy azok nem 32 hanem 8 bitesek? Én az első PIC kiválasztása előtt heteken át bújtam az adatlapokat, az Interneten fellelhető PIC-es projekteket és utánanéztem annak is, hogy milyen szoftverfejlesztő eszközökkeel fogom majd tudni megírni és kipróbálni a programot. Akkor még ez komolyabban behatárolta a lehetőségeket, mert a HiTech és a többi 3rd party C fordító még csak néhány típust támogatott. Mondanom sem kell, hogy a program első verziója készen volt és az MPLAB szimulátorban le volt próbálva (a Logikai Analizátor ablakban már ellenőriztem a soros vonalon kiküldött jelsorozatot, és a futási sebességét is lemértem), mielőtt a "Webshopból" megrendeletem volna a kinézett PIC-et. Ha a tájékozódásra, tanulásra és az informálódásra nem szánod rá a szükséges heteket-hónapokat, akkor mit remélsz?
Heló!
Amikor beírom azt az Mplab-ba, hogy IF INTCON,INTF=1 INCF IDO,1 ENDIF Azt írja hogy az első sorban lévő vessző illegális karakter. Ezek szerint, nem lehet ilyen vizsgálatot csinálni IF-fel, ami egy regiszter egy bitjét vizsgálja meg? (Az IDO egy sima változó)
Nézd meg a PIC adatlapjában, találsz IF utasítást? (Az ENDIF-ről nem is beszélve)
Ha például az írom be, hogy
IF IDO<5 akkor azt kezeli, tehát a pic ismeri az IF-et De most próbáltam , hogy az sem jó, hogy IF INTCON=B'11000101' Egyébként innen vettem a bölcsességet, hogy IF-fel is lehet csinálnia dolgokat: http://www.freeweb.hu/t-t/elokep/pic/felhkk/kk/sz110514.htm
A belinkelt oldalon hatalmas betűkkel ott áll, hogy "Fordításvezérlő utasítások". Az is le van írva mire valók!
Megnézted az adatlapot és találtál ott IF-et? Jut eszembe, milyen nyelven programozol? Kérlek, használd a LINK gombot(és a többi szerkesztés segítő lehetőséget, pl. "Válasz" hiperhivatkozást!)! Köszi!
Az oldal kb3/4edénél írja, az ifet.
Megnéztem az adatlapot. De ott képtelenség megtalálni, mert ha beírom keresőben hogy if igen sok találat van. 16f628a-ról van szó egyébként.
Külön fejezet foglalkozik az adatlapban az utasításokkal, miért lenne képtelenség megtalálni? (Ráadásul a választott PIC adatlapja nem is túl vastag.)
A hivatkozott oldalon - ahogy watt is írta - ott van, hogy fordításvezérlő utasítások! Az is ott van, hogy ezt mire lehet használni. Miért nem olvasod el?
Adatlap, 15. fejezet INSTRUCTION SET SUMMARY.
Ha hasonlítanom kéne a kérdésed, hogy megértsd, miért reagálunk így, akkor egy ilyen kérdés jut eszembe: Egy vadászrepülőbe hová kell tölteni a benzint?
Nyugi elolvastam, és azt is láttam hogy íz if mire való. Nekem csak az volt a kérdésem, hogy hogy lehet használni az utasítást, egy regiszter bitjének vizsgálatához, mert nekem nem ment.
Idézet: „Nyugi elolvastam, és azt is láttam hogy íz if mire való. Nekem csak az volt a kérdésem, hogy hogy lehet használni az utasítást, egy regiszter bitjének vizsgálatához, mert nekem nem ment.” Nem gondolod, hogy ez a két mondta eléggé üti egymást?
Szerintem nyugodtak vagyunk...
Én már régen nem idegeskedem más kapkodása, értetlensége miatt. Befejezetlen, de elég jól összeszedett és érthető az a web lap amire hivatkoztál. Miért nem állsz neki és olvasod el az elejetétől, figyelmesen? Egy regiszter bitjének vizsgálatához nem az IF fordításvezérlő utasítást kell használni, egészen máshol kell keresgetni...
Nem, mert azt nem arról nem találtam semmit, ugyanis egy példa volt csak írva.
Már bocs a kérdésért, de most kötözködni akartok vagy segíteni? Ha az előbbi akkor inkább mondjátok azt, hogy fogjam be és oldjam meg magam, ha meg segíteni akartok, akkor tegyétek azt lécci ha tudtuk. Köszi
Olvassuk el helyetted az oldalt?
Akkora blődséget kérdezel, hogy nincs értelme válaszolni neked. Nem tudunk segíteni, ha nem érted meg a válaszokat! Mindenre kaptál választ! Méghozzá egyértelműt! Idézet: „Nem, mert azt nem arról nem találtam semmit, ugyanis egy példa volt csak írva.” Már pedig én azt mondom, hogy ott van azon az oldalon az az utasítás is, amit te keresel. ...és igen, először oldd meg magad, mondjuk azzal, hogy türelmesen olvasol és csak utána kérdezel. Idézet: „Egyébként innen vettem a bölcsességet, hogy IF-fel is lehet csinálnia dolgokat: http://www.freeweb.hu/t-t/elokep/pic/felhkk/kk/sz110514.htm” Az előtte levő oldalt is nézd meg., légyszi!
Ezt néztem már, de köszi szépen.
Most újabb problémák vetültek fel. Valahogy téved a program, mert nem veszi észre hogy a 2nél kisebb az 1, azt viszont igen, hogy 100nál kisebb az 1. Meg az egyenlőséget sem veszi észre... Idézet: „Ezt néztem már, de köszi szépen.” Akkor a hiba benned van! Idézet: „Most újabb problémák vetültek fel.” Ezek után nem is csodálom! Idézet: „Valahogy téved a program” Igen, és én vagyok a hülye! Erről is biztosíthatlak! Szerintem, ha jót akarsz magadnak, elhúzol olvasni, mondjuk egy fél évet! Utána szívesen várunk!
Inkább nem mondok semmit, és tényleg elhúzok ebből a remek, segítőkész közösségből. Remélem jól szórakoztok majd a haveroddal.
Idézet: „Valahogy téved a program, mert nem veszi észre hogy a 2nél kisebb az 1” Kizártnak tartom. De az ilyen felvetésnek úgy van értelme, ha belinkeled a programot, és megnézzük, hogy mi a gond vele. Idézet: „Ezt néztem már, de köszi szépen.” Akkor mit nem értettél meg belőle? Mert világosan leírja, hogy az általad kinézett IF "utasitás" nem a PIC mikrovezérlőnek szól, hanem a fordítónak, ennélfogva bitvizsgálatra nem használható. Mellesleg ha az IF utasításhoz ragaszkodsz, akkor miért nem próbálkozol a C nyelvvel, vagy valamelyik BASIC-kel? A www.mikroe.com oldalon kitűnő könyveket és mintapéldákat is találsz.
Nem értesz te semmit! Nulla ismerettel olyan dologba akarsz fogni, ami meghaladja a jelenlegi képességeidet! Elég volt ebből! Tanulj még pár évet és ne tégy fel több idióta kérdést!
Szia!
A 16 mikrokapcsolót kösd mátrixba, ehhez elég 1 port! A kijelzőkhöz a multiplexelést ajánlom! Ha 7 szegmensest akarsz akkor az 7 szegmens+pont szintén 8 láb ami még 1 port, és a közös anódokat/katódokat, pedig külön külön kapcsolgatod még 1-1 lábbal! Így elég 3 port, és lesz 16 gombod, és akár 8db 7 szegmenses kjelződ, és szinte bármilyen 28 lábú PIC elég, pl 16F690, ha kell még segítség szólj!
|
Bejelentkezés
Hirdetés |