Fórum témák
» Több friss téma |
Fórum » MikroPascal kérdések
Témaindító: bozsokiandras, idő: Máj 15, 2006
Témakörök:
Sziasztok!Nem tudom találkozott e valaki olyan problémával, hogy a mikropascal egy pic-ben levő regisztert nem tud kezelni? A szóban forgó pic, 16f628. Szeretném egy port lábán, történetesen az RB0-án, feszültség élváltozás állapotát figyelni és megszakítást felhasználva jelzést produkálni. Az option regiszterben az intedg biten lehetne állítani, hogy milyen élre történjen megszakítás. Beírva
option.6:=1;-> option aláhúzva, Fordításkor "12 303 Identifier "option" was not declared", vagyis ezt a regisztert nem lehet használni. Tud valaki magyarázatot adni?
Szia!
Régen a PIC -eknek volt egy option utasításuk, amivel az option regisztert lehetett beállítani bankváltás nélkül. A névütközést elkerülendő az option regisztert OPTION_REG -nek definiálta a Microchip.
Hp41C köszönöm! Tényleg elmúlt a, hibajelzés.
A dolog így mindjárt másképp néz ki és most öröm van. ![]() Az adatlapok ezt miért nem közlik? Ennek ellenére örülök, hogy ezt Te tudtad és megosztottad velem, illetve velünk. Remélem kikerültem a zsákutcából.
Szia!
Ez a fajta élváltozás "figyelése" csak az RB4-RB7 lábakon működik. Üdv: gapati
Szia!
Örülök, hogy megoldódott a probléma. Igen itt van egy kis kavarodás. A 16F627-628 adatlapjában (DS40300C) a memória kiosztásnál OPTION, a regiszter leírásánál OPTION REGISTER, a 16F627A628A-648A (DS4044F) a memória kiosztásnál OPTION, a regiszter leírásánál OPTION_REG szerepel...
Sziasztok!
Valaki tudna nekem segíteni abban ,hogy hogyan kell megoldani azt hogy egy 16f84a pic, figyelje a porta.1 et, és jel alapján egy fordulatszámmérőt kéne építsek.Tudom hogy már van ebből ezer mindenhol,de én saját programot szeretnék csak nem tudom hogy kell az időzítő részt megírni,az megvan hogy figyeli a portot, csak az idő méréssel és számolással vannak a problémák.Nagyon köszönöm a segítségeteket!!!
Szia! Ha mikropaskal-ban írod a programot, Találsz egy ikont az interrupt-ra. Az előállít neked egy megszakítási procedúrát és azt feltöltöd a saját adataiddal, amihez tudni kell a proci frekvenciájá és be kell állítani az előosztást. Be kell állítani a megszakítás engedélyezését. Tanulmányozd az option_reg regiszter bitjeit. Be kell állítani hogy a tmr0 mettől számoljon, hogy a tmr0 regiszter feltöltése utáni átbillenés milyen időközönként történjen. Ezt az átbillenést számlálod meg egy regiszterrel és ha megvan a kívánt 1 sec-es idő, akkor a másodperc rgiszter értékét növeled 1-el. 16f628 esetén így néz ki
Remélem tudtam segíteni. Van több segítség is a neten a timer0-ás megszakítás számolására.
Sziasztok!
Készítettem egy termosztátot, 16F690 -el és egy ds16s20. Szépen működik, csak a fogyasztással van problémám. Három db AAA elemmel működik, de egy hétvége alatt lemerítette az elemeket. Most rendeltem egy 16LF1829-es alacsony fogyasztású procit, ezzel szeretném kiváltani a 16F690-et. (sleep módban 20nA!) Viszont ez a PIC 1,8-3,6 V-ról működik, tehát 2 db AA elem elég lenne, csakhogy a ds18s20 min 3V-ról működik. Milyen hőmérséklet érzékelőt használjak, hogy az egy tizedes pontosság meg legyen, és a ilyen kis feszültségen is működjön?
Szia
DS620 1.7V to 3.5V resolution is User-Selectable to 10-, 11-, 12-, or 13-Bits (0.5°C, 0.25°C, 0.125°C, and 0.0625°C Üdv
Köszi, nézem!
Hol lehet kapni? A hozzászólás módosítva: Máj 21, 2013
Sziasztok!
Tud Valaki megoldást a nagyobb programok fordítására? Sajnos nekem nem akarja lefordítani, mivel túllépné a "határt"..... Köszönettel: gapati
sziasztok!
valaki foglalkozott már itt I2C slave móddal? egy openwrt-s gpio bitbang i2c master buszra lenne rádugva egy PIC, és az OS kérdezgetne tőle - pár változót kellene tudnia átadnia a masternek eddig jutottam, ez már némi életjelet ad, de még mindig zavaros: (PIC12F1840)
saját értelmezésem szerint ilyenkor a lekérdezett regiszter számát kéne visszadobnia a buszra, de nem az történik, hanem egy a regiszterrel párhuzamos értéket ad vissza. viszont nem csak az E0-on reagál, hanem az E0-tól EF-ig dobál vissza a címzett regisztertől független, a címmel párhuzamos értékeket, amiben logikát se tudtam felfedezni sajnos eddig nem találtam olyan példaprogramot amitől megvilágosodtam volna, tudna valaki segíteni hogy hogyan faragjam tovább a programot?
Sziasztok!
Segítségre lenne szükségem! A lányaimnak tönkrement egy éjszakai fény játéka: alvo-pluss-teknos-ejszakai-feny-csillagkepek Egy 16F628A pic-vel szeretném megjavítani. A program megírásánál viszont van pár dolog amit nem tudok megoldani. A játék 3, különböző színű ledet tartalmaz, és 4 nyomógombot. A gombok funkciói: - 1. gomb: ki-bekapcsolja a játékot (sleep), és az első ledet bekapcsolja. - 2. gomb: második ledet bekapcsolja - 3. gomb: harmadik ledet bekapcsolja - 4. gomb: a három ledet felváltva kapcsolja be 5 másodpercenként (halványítással) Az alábbi kódot állítottam eddig össze:
Amiket nem sikerül megoldanom: - Ugyanazzal a gombbal ki és be is kapcsoljon a készülék. Sleep-módba sikerül tenni, de ugyanazzal fel is éleszteni már nem megy. Próbáltam a 6-os lábra (INT) tenni egy nyomógombot, és annak megfelelően átkötni és átprogramozni, de nem működött. Reset-el sikerül feléleszteni, csak az ugye már egy ötödik gomb lenne... - Ha a színeket elkezdi átváltani, akkor nem sikerül a ciklusból kiléptetnem, csak ha folyamatosan nyomom a kettes, vagy hármas gombot. A működő játéknál alapból bármikor lehetett váltani, hogy folyamatos világítást kérek, vagy a színváltást. Remélem túl tud lendíteni valaki a problémákon! A hozzászólás módosítva: Okt 11, 2013
Sziasztok!
PIC16F689-es pic-nek szeretném kimenetként használni a RA portját. Valamit nem jól konfigurálok, de nem tudom hogy mit. Tudna valaki segíteni?
Valami még kellene, mert nem kapcsolja be az RA4-RA5-öt. Köszönettel: gapati
hibás kommentet írtam. ha a trisa-t nullára állítod, akkor az összes A-láb kimenet lesz.
A hozzászólás módosítva: Okt 13, 2013
Szia!
Ez még nem elég neki. a 9. sorban én is azt mondtam neki. (RA3 bemenet, a többi kimenet.)
Az RA4-RA5 az OSC1-OSC2 láb külső oszcillátornál. Valami itt nem OK! Én belső 4MHz-t használok.
szerintem a ra4. lábat állítottad bemenetre.
A hozzászólás módosítva: Okt 13, 2013
Szerintem a konfigurációs bitek környékén van a probléma, konkrétan az oszcillátorra vonatkozó részen. Ha belső oszcillátort használsz, akkor az INTOSCIO üzemmód kell az RA4 és az RA5 I/O használatához.
Igen!
gozi megoldotta a "fura" jelenséget. Köszönöm a segítséget, további szép estét mindenkinek!
Sziasztok!
Egy kis segítségre lenne szükségem. Adott egy 16F877A és 2db HD44780 kompatibilis LCD. Egy 2x20 és egy 4x20 charakteres. Összehoztam próbapanelon egy kis áramkört, hogy leteszteljem, de nem akar elindulni az kiíratás az LCD-re. Az LCD megjelennek az első sorban a kockák, de nem ír ki rá semmit sem. Oshon-os szimulátorban minden működik. Mikropascalban írtam rá progit. Először a B protra kötöttem az lcd-t a vezérlő és adatbiteket is (trisb:=0x00; lcd_init(portB); lcd_out(1,1, ' szöveg') utána megpróbáltam szétosztani az adat biteket a B és D port között, de így is semmi. Órajel 20MHz ezt ellenőriztem az osc2 kimeneten skóppal az szép tiszta. az MCLR lábat 10k-val felhúztam VDD-re. Program beírása után vissza olvastam a pic-ből a progit az ok. Tudna valaki segíteni, hogy mi lehet a hiba, amiért nem akar írni az LCD a PIC? A segítséget előre is köszönöm.Üvd.: Zoli!
Hello! Nekem nincs Pascal-om, de ha csak az első sorban kockák vannak, az azt jelenti, nem történt meg az LCD inicializálása. Vagy a program nem jó, vagy a hardver bekötés, vagy a bekötés nem felel meg a programnak. (4-8 bit üzemmód stb.) Általában az LCD-ről nincs visszaolvasás, így az RW vonalat fixen a GND-re kell kötni. üdv!
Szia
Digitálisra át vannak állítva a lábak? ADCON0 := 0x07; Üdv
Köszönöm a választ. Közben megoldódott a dolog. A próba panelban volt a hiba. Szakadás volt benne az egyik oldalon, amit nem láttam, mivel be van öntve és csak a jelöléseket figyeltem. Egyébként meg egy 8 zónás lakás riasztó prigiját írtam és előtte le akartam próbálni az lcd.
Üdv.: Zoli
Hali! Nem állítottam át a portot az LCD miatt, mivel az adatlap szerint a B port alapból digitális, csak kimenetnek állítottam. Viszont közben akadt még1 kisebb gondom a beépített eeprommal. Kiolvasni az eeprom_read-del ki tudom az eeprom adott byte-ját viszont írni valahogy nem igazán akarja eeprom_write-al (eeprom_write($01, 0x04)
. Az adatlap szerint van benne 256byte eeprom. A segítséget előre is köszönöm.Üdv.: Zoli
Szia
Ha jól emlékszem nekem is volt hasonló problémám. Próbálj betenni egy kis késleltetést az írás elé. delay_ms(100); Üdv
Köszi a választ. Tettem be várakozást, mivel a mikropascal is írta, hogy 20ms-re szükség van írás előtt, de így csinálja meg az írás. Arra gondoltam még, hogy esetleg nem-e kell beállítani valami kapcsolót még a project elején és nem a default-ot kellene használni. Gondolok itt (WRT_ENABLE_ON vagy OFF).
Köszönöm a segítséget. Üdv.
Tudnátok segíteni?
Az alábbi kód egy 16F628A PIC-re küldene RS232-n karaktereket. Adott karakternél, egy relét kellene behúzni a PIC RB4 lábán. Ha a kikommenterezett részt engedélyezem, akkor az RA0 lábon lévő nyomógombbal tudom működtetni a relét. PC-ről küldött karakterrel viszont nem csinál semmit. A PC-nek visszaküldött karakter (UART1_Write(uart_rd)) helyesen jelenik meg a monitoron.
A hozzászólás módosítva: Nov 7, 2013
Nem pascal kód volt a hiba oka. Egy elkötés miatt nem működött.
|
Bejelentkezés
Hirdetés |





S0: Prescaler Rate Select bits
utána megpróbáltam szétosztani az adat biteket a B és D port között, de így is semmi. Órajel 20MHz ezt ellenőriztem az osc2 kimeneten skóppal az szép tiszta. az MCLR lábat 10k-val felhúztam VDD-re. Program beírása után vissza olvastam a pic-ből a progit az ok. Tudna valaki segíteni, hogy mi lehet a hiba, amiért nem akar írni az LCD a PIC? A segítséget előre is köszönöm.




