Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ok. Tényleg így mükődik. Kipróbáltam az oshonsoft féle szimulátorban és tényleg jó!
Köszi! Nem tud valaki valami okosságot ehhez a szimulátorhoz, hogy ne 30 alkalmas legyen? Vagy valami más szimulátort ami jó? 18Fxxx-hez kéne. Köszi! Üdv: tomee.
Azt akarom kérdezni, hogy túlajdonképpen mire is jó a PORTx regiszter?
Mert úgye TRISx az adatirányok beállítására szolgál, a LATx reget irjuk, olvassuk és a PORTx reg meg mire is jó?
Nekem van hozzá okosság, de egy hex editorral feltörni se nagy művészet
MPLAB szimulátora nem jó szimulátornak 18Fxxxx-hez?
De jó csak nekem olyan kellet volna amin szépen láccanak a lábak állapotai.
PORTx-et olvassuk ! A LAT olvasása hibákat eredményezhet... És a különbség csak egy buffer valamelyiken, de már nem emlékszem melyiken...
Az miért van, hogy az MPLAB szimulátorban törlőm LATB-t és PORTB-t és PORTB-ben bent marad valami érték. Pár bit 1 értékű. Mindig úgyan azok.
Azokat, hogy lehet letörölni? És úgyan ez van PORTD esetében is. Csak ott más bit (bitek) maradnak 1-ben. (Elég furmányos dolog ez a pic 18Fxxx) Köszi!
Hali!
A PORTx regiszterekben azok a bitek maradnak 1-ben (de 0-ban is), amelyek bemenetként vannak definiálva. Azok állapotára ugyanis nincs hatással a PORTx regiszter értéke. Pont ez a különbség a LAT és PORT regiszterek között. A LAT-ban a kimenetet meghajtó regiszter állapota van, míg a PORT-ban a lábon közvetlenül jelenlévő szint. Ez az ún. Read-Modify-Write utasítások használatát könnyíti meg (pl. bsf PORTA,0 helyett bsf LATA,0), mert ezzel a nem hajtott lábak, kimenetre állítás után is megőrzik előző állapotukat. Remélem érthető volt.
Nah itt a suliban az MPLAB-bal nem jelentkezik ez a port beállás probléma. (Nincsenek ossze vissza a bitek a porton.)
Érdekes....
Azt hiszem megtaláltam a furcsa bit beállások okát.
Ez egy picinyke 18F4431 lenne és természtesen specko beállításai vannak. Csupa PWM meg rengeteg választható I/O mód. Ezek kavartak be, de rendesen. Ha valaki használt már ilyet vagy hasonló picinykét akkor ha lenne olyan szíves akkor a tapasztalatait megoszthatná velem. Köszönettel: Tomee
Az adatlaban az IO port résznél minden portra ott van, hogy hova mit kell tenni, hogy a port digitális I/O legyen.
Sziasztok!
Még nagyon kezdő vagyok a PIC-programozásban és lenne 1-2 kérdésem... Nem tudom, hogy megfelelő topicba írom-e, de ez tűnt a legmegfelelőbbnek. 1: A fentebb említett szimulátor programhoz nicsen esetleg valami leírás, hogy mit hogyan kéne beállítgatni? Nagyon hasznosnak találom, de nem sikerül működésre bírnom. 2: Egy programrészletet kéne írnom, ami egyik porton lévő jel függvényében (egyszerűség kedvéért mondjuk egy kapcsoló) másik 4 portra adna logikai 1-et. Ez így még nem lenne lehetetlen, csak ami megnehezíti, hogy randomra kéne kiválasztani a 4 port közül egyet vagy többet, és random ideig (mondjuk 2perc és 10 perc között) kellene, hogy aktív legyen a kiválasztott port/portok... Ebben kérnék segítséget, mert nekem ez már átláthatatlan. Előre is köszönöm szépen a segítő hozzászólásokat!
Szia!
Igazi random függvényt irni nehéz. A Microchip honlapján nézz szét AN544 app-ot keresd forrással együtt.
asm-ben hogyan lehet pontos időzítést beálítani?
pl. 10msec vagy bármi más időt.
Hacsak késleltetést akarsz akkor írd meg valami fejlettebb nyelvben és a generált assemly kódot másold be az MPLAB-ba.
Igazán korrekt időzítéshez valamelyik beépített Timert tudsz használni. Régebben valamelyik topic-ban ez téma volt, kb. fél éve. Egy órához készítettem időzítést. A link itt .
Sziasztok!
Nemrég kezdtem el picekkel foglalkozni. Autóba szeretnék egy LCD-s távolságszámlálót csinálni , az LCD része műxik, számlál is, de kéne valami menü félét is kreálnom aaz egyéb funkciók kiválasztására. Valkinek van már tapasztalata ilyesmiben ? Hogy szokták ezt megoldani?
Hát nekem van, de sok kézi munkát igényel a menű elkészítése.
A lényeg az, hogy a szöveget elraktározod a mikrovezérlőben és azt figyeled, hogy mikor melyik gombot nyomták meg. Ha pl. az 1 gomb lett megnyomva akkor az egyik szöveget és irja ki. Ha itt mondjuk be lehet állítani valamit akkor figyeled a +/- gombot és növeled vagy csökkented a regiszter értékét. A reg értéket meg átkonvertálod ascii karakterré és vissza irod a kijelzőre. Rengeteg ciklus kell bele és nem szabad elrontani mert az ember utána sose derití ki a hibát.
Szerintem erre a feladatra valami magasabb szintű programozást kellene választanod, Pl.: BASIC vagy C vagy Pascal. Ezekbe egyszerübb a menü elkészítése és nem kell szenvedni az assembly rejtelmeivel....
Idézet: „nem kell szenvedni az assembly rejtelmeivel” Pedig az az igazi kihívás! És úgy gondolom, hogy nem csak én vagyok vele így... Egyébként ha olyan programozási nyelvet tanul meg az ember, amiben szinte lehetetlen hibázni...akkor mi lesz abban az esetben, ha épp előkerül egy komolyabb hiba? Begörcsöl az illető agya, mert nem tudja megoldani a problémát? Akkor inkább többször hibázzunk egy bonyolultnak TŰNŐ rendszerben, és így kialakul/továbbfejlődik a hibafelismerő, illetve a problémamegoldó képességünk...
Szerény véleményem az hogy mindenki azzal a nyelvel programoz ami neki tetszik. Ha neki az assembly tetszik, ám legyen.....
Én személy szerint nagyon nem szeretem a rendszerszintű(közeli) programozást főleg PC-n. A PIC még elmegy..... Nem akarok olyan emberke lenni aki ha ránéz egy gépi kódra akkor már 3D-ben látja az egész programot, ennyire nem vagyok fanatikus....... Pedig vannak ilyenek....
PC-n én is utálom az összes programozási nyelvet. (Nem is lesz belőlem programozó...na nem is akartam az lenni hál Istennek ) <<< Iszonyúan ROBOT meló...
Én az az emberke vagyok, aki nem tudja elképzelni, hogy az Assembly-n kívül is van világ...egyszerűen nekem ez vált be PIC-éknél...szerencsére nagyon egyszerű és nagyszerű...>>>
Mondjuk én néha szoktam ötvözni a BASIC-et és az assemby-t, mert a BASIC-ben sincs minden benne....
De ha nem muszáj akkor inkább nem vacakolok vele. Én ilyen kis kényelmes ember vagyok....... PC-re van visual BASIC! Az baromi egyszerű. Nekem 2 hát tanulás után már jól ment. Persze előtte PIC BASIC azért volt rendesen, úgyhogy az alapok azok megvoltak.
Sziasztok!
A mikroBasic nevü programot használom PIC programozáshoz. Használja ezt valaki rajtam kivül? Lenne pár kérdésem a nyelvel kapcsolatban. Például, hogyan tudnék I2C -vel csatolni egy óra IC-t. Ha valaki csinált már ilyet akkor szivesen fogadnám az idevonatkozó kód részletet. Másik kérdésem: Van e olyan PIC amiben 12 bites AD átalakitó van?
Én nem ezt a BASIC-et használom, de nincs valami referencia hozzá? Mert amit én használok abban egyszerű az I2C. csak ennyi I2CRead sda, scl, 0xa2, addr, data
Azthiszem a 18F-esek között van 12bites ADC-jű, de nem biztos.
Van egy másik problémám is:
Van egy MAX 127 -es 12 bites ADC IC amit szeretnék szintén összekötni a 16f877a pic-cel. Kellene egy minta progi ugy jobban megérteném, hogy mitől is müködik a dolog. De ha lehet akkor BASIC vagy C esetleg Pascal nyelven. Létezik valahol egy normális könyv ahol ezt részletesen leirják?
Sziasztok! Nem tudom, hogy ezt az oldalt olvassák-e olyanok /mint én/ akik még kezdők a témában, nos. Én egy főiskolán tanulok. GDF. Itt volt régebben egy tantárgy Mikrovezérlők alkalmazás technikája néven. A vezető tanár Kónya László. És ha érdekel, és nem írta még le itt senki, akkor itt a webcím: [link=http://www.aut.bmf.hu/konya/mikro/pic_www/index.htm]http://www.aut.bmf.hu/konya/mikro/pic_www/index.htm[/link] Szerintem a kezdők itt kezdhetnek ismerkedni ezzel a témával.
Sziasztok!
Azt akarom kérdezni, hogy szokták a pic bemenetére illesztett nyomógombok preljét megszűrni? Gondolom a programban késleltetéssel, de kívülről hw szinten, hogyan szűrik? Én így gondoltam. De talán lehetne a nyomógombbal párhuzamosan kötött kondival is… Üdv: tomee
Nem hiszem. Nekem még nem volt vele gondom... Talán akor lenne ez lényeges ha interruptra lenne megoldva a nyomógomb érzékelés.....
Ok.
De ha folyamatos a port figyelés (btfsx) akkor ha bejön a legelső impulzus és utána a pic végre hajtja az adott feladatott és visszatér a gombhoz, de annak a prellegése még mindig tart akkor mégegyszer végig csinálja a feladatot, de azt nem kéne mivel csak prell volt. Ezt hogy szürőm ki hw szinten. Egyszer csináltam sw szűrést, de az annyira nem tetszik. Most valami hw megoldáson gondolkodom.... |
Bejelentkezés
Hirdetés |