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:
Ez a kod mukodik:
Felfuzi a szamjegyeket es kiirja a vegen magat a szamot. Egyelore csak 1 erteket kuldok at simulink-bol, ezert eleg az Idézet: feltetel. Ez a bit mutatja hogy van-e meg atkuldendo adat. Persze tudnek irni egy ilyet is:„if (UART1_Data_Ready() <> 0) then”
De itt most azon van a hangsuly hogy meghal a dolog ha a karakterlancot atalakitom szamma, a szammal vegzek muveletet, visszaalakitom stringbe es kuldom vissza. A visszakuldes ugy mukodik hogy a Mikropascal atirja ascii kodba az ertekeket es nekem a simulinkbe van egy ASCII decoder blokkom amire rakotok egy kijelzot hogy lassam az erteket.
Ha még aktuális, ez a kód tökéletesen működik:
A fenti kód az ASCII-ban kapott számot 1-el megnövelve, ASCII-ban visszaküldi. A kód jellegéből adódóan csak egy számjegy feldolgozására alkalmas (a küldött adatra ez nem vonatkozik).
Sziasztok!
Segítséget szeretnék kéni Tőletek, mégpedig abban, hogy hogyan tudnék meglévő ASM kódot beilleszteni a mikropascal programba.(vannak már működő, korábban megírt rutinjaim, amiket szeretnék használni) Kétféle képen próbáltam: 1. : asm begin btfsc STATUS, Z goto $+3 incf mperc, F stb.... end; 2.: asm { btfsc STATUS, Z goto $+3 incf mperc, F sb.... } A fordító kiakad syntax errorral. 40 304 Syntax error: Expected "." but "asm" found ORA_Int.mpas Köszönette: gapati
A help-ben olvasd el az "asm Statement" részt.
Szia!
Nem értem, elkerüli valami a figyelmem? Én is ott láttam, hogy így kellene, de a fordító syntax errorral megáll. 61 304 Syntax error: Expected "." but "asm" found ORA_Int.mpas asm Time incf mperc, W ;Másodperc andlw 0x0F xorlw 0x0a btfsc STATUS, Z goto $+3 stb....... end; Üdv: gapati
Pedig írja pontot vár és asm talált. A kód előző része végét nézd meg.
Ha kiveszem az asm blokkot, akkor lefordul a program. Nem kell valami direktívát bekapcsolni neki az asm miatt?
Üdv: gapati
pedig más fórumon is azt mondják, hogy menni kéne. Nem lehet hogy csak a fullos verzióban működik rendesen?
http://www.mikroe.com/forum/viewtopic.php?f=76&t=49042 Üdv:gapati
Kitettem az asm...end; blokkot egy eljárás begin...end; blokkjába és így működik. De sok olyan asm direktíva van amit a Microchip formátumban nem ismer meg. A mikropascalban használható asm parancsok szintaktikáját hol lehet megtalálni?
Köszönettel: gapati
Az asm utasítás után a "Time" az mi akar lenni? Szerintem az nem assembly utasítás.
Ha cimke akkor deklarálni kell (label), vagy kettőspont kell a végére.
Szia!
Igen cimke. Kettősponttal megy is. Köszönet érte! Megtaláltam az asm utasítások szintaktikáját: http://www.mikroe.com/chapters/view/10/chapter-9-instruction-set/ A globális változóimra hivatkoztam még rosszul. A help-ben azt látom, hogy egy aláhúzás kell a változó nevek elé. Így már lefordult a program. Köszönöm a segítséget mindenkinek! További szép napot! Üdv: gapati
Sziasztok!
Szeretném megkérdezni használ-e valaki Mikropascal Pro for PIC 5.8.0. fullos verziót? Köszönettel:gapati
Pár soros program. Mégsem akar működni megfelelően.
Mindig újraindul a PIC. Hol a hiba szerintetek? program Usart_Test; var txt, delim : string[10]; begin TRISB := %11111110; PORTB := %00000001; Usart_Init(4800); delay_ms(100); delim := 'OK'; while TRUE do begin if Usart_Data_Ready() = 1 then begin Usart_Read_Text(txt, delim); if (txt[0] = 'K') and (txt[1] = 'B') and (txt[2] = 'e') and (txt[3] = ' ') then begin Usart_Write_Text('Kazan Be'); SetBit(PORTB, 0); end; if (txt[0] = 'K') and (txt[1] = 'K') and (txt[2] = 'i') and (txt[3] = ' ') then begin Usart_Write_Text('Kazan Ki'); ClearBit(PORTB, 0); end; if (txt[0] = 'H') and (txt[1] = 'M') and (txt[2] = '?') and (txt[3] = ' ') then Usart_Write_Text('Homerseklet'); end; end; end. Lehet, hogy a 16F877A-n nem működik az Usart_Read_Text?
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.) |
Bejelentkezés
Hirdetés |