Fórum témák
» Több friss téma |
Igaz ez most kicsit OFF de ezt el kell meséljem! A PIC amivel dolgozok elképesztő milyen szívós Szinte foggalmam sem volt hogy miért melegednek ennyire a cuccok rajta, és miért megy el a kijelzés, hát erre kiderült hogy az 5V-os stab elhányta magát és csak úgy ömlött át a 10V Na mondom volt egy PIC-em... De kibírta, utána is szépen működött
Szerintem marad ez a megoldás, de a delay_ms bántotta a szemem és inkább kihasználtam hogy ne csak üres várás legyen, hanem a polling idejét használtam ki a várakoztatásra, ha kell akkor ciklikusan, úgy oldottam meg hogy 300-szor meghívtam a figyelést egy For-next ciklussal, mialatt csak 1us késleltetés van, és igy várás közben is figyel
Segitsetek légyszives... nem értek a programozáshoz és nem tudom megoldani a hibát.
Az elektor ez év decemberi számában megjelent Universal Thermostat-ot épitettem meg de 21,6 fok helyett az LCD kijelző 216 fokot mutat. A szoftver az elektor oldalárol lett letöltve és egy 16f628 hoz ill ds18b20 szenzorhoz valo. A csomagban volt egy .bas fájl is ami pibasicpro 2.45 el lett forditva. ezt a programot nem találtam meg csak a 2.30ast ez viszont az eredeti .bas fájlt nem tudja leforditani mert szintaktikai hibát érzékel az alábbi sorokban. OWOut DQ, 1, [$CC, $44] ' Start temperature conversion WaitLoop: OWIn DQ, 4, [Count_Remain] ' Check for still busy converting If Count_Remain = 0 Then WaitLoop ' Busy OWOut DQ, 1, [$CC, $BE] ' Read the temperature OWIn DQ, 0, [Temperature.LowByte, Temperature.HighByte, Skip 4, Count_Remain, Count_Per_C] Mivel én nem értek hozzá kérem aki tud segitsen nekem kijavitani a hibás sorokat.... hibás az első, második, negyedik , ötödik sor.... az már más kérdés hogy miért ir ki nagyobb értéket a valoságosnál az érzékelő bár sztem a hiba a szoftverben van. Az sem világos hogy ha hibás a mellékelt .bas fájl akkor azt hogy tudták leforditani hex fájlra ami működik, igaz nem jól.....
Csatolhattad volna a teljes hibaüzenetet (esetleg a forrás .bas-t is), önmagában a szintaktikai hiba csak annak mond így valamit, aki eléggé benne van a PicBasic-ben.
A hibaüzenet csak annyi volt hogy syntax error 125. sor 126, 128,129 sor.
Ezt is csak a forditoprogi irta ki hogy ezért nem csinál(t) hex fájlt belőle. Mellékelem az eredeti fájlokat, hátha igy tudtok segiteni....
Azokkal a sorokkal van baj eszerint, ahol OWIn vagy OWOut utasítás van. Ezek megvannak a .mac kiterjesztésű makrókönyvtárban, valamiért viszont a fordítód nem használja; kérdés, hogyan kell ebben a környezetben meghatározni, hol és hogyan keressen makrókat fordítás közben.
Annyit sikerült kisilabizálni hogy a .bas fájlból ami a kiindulási alap lenne a fordito még 3 fájlt készit ezek egyike a .mac.
Tehát ez akár jo is lehet hiszen ahogy néztem a fájlok fejlécét mindegyikben szerepel a pbp2.45 tehát a fordito hozta létre. Viszont a hex fájlt már nem tudja elkésziteni mert mint irtam hibaüzenettel leáll. Most két eset lehetséges. A 2.30 as forditó nem tudja értelmezni és ezért áll le, vagy valóban hibásak ezek a sorok. Az eredeti .bas fájlban elvileg megtaláltam a hibát ami a téves kijelzést okoza de mivel nem tudom leforditani igy kiprobálni sem tudom hogy az elméletem helyes e. Ha lenne 2.45 ös forditom akkor egy lehetőséget ki tudnék lőni viszont szinte beszerezhetetlen.
Nem tudom az megoldhato e hogy az elkészült .asm fájlt valamivel lefordítsam hex.re...ha már ez a progi nem teszi meg.
Nem tudnál ajánlani valami progit ami erre alkalmas vagy esetleg ha van neked ilyen akkor megosztanád e....
Szinte mindenkinek van: MPASM, az MPLAB környezet fordítója És még sok más is van, a neten megtalálod őket (a teljes MPLAB környezetet innen töltheted le).
Az Mplab 7.5 megvan de sajnos a benne lévő mpasmwin nem tudja leforditani sem ezt sem az általam modositottat mert hibaüzenettel leáll.
Kicsit utánajárva kiderült hogy sajnos pont ez a szoftvercsomag nem kompatibilis a .bas és a pbp által készitett asm és egyébb fájlokkal. Szóval ezen kivül kellene valami....
Küldöm az email címedre a segítséget (szoftver). Lassan odaér.
Megkaptam köszönöm. Irtam választ a mailodra olvasd el légyszi.
Nem tudtam megoldani vele.Leirtam mindent mailban.
nekem 2.50b picbasic lefordítja a bas-t hexbe szó nélkül, 1019 szó hosszú lesz a hex.
2.46 os pb-vel 1125 szó
Ha neked sikerült akkor kérlek a leforditott hex-et tedd fel ide vagy küld el légyszi a mailomra.
Ha esetleg megosztanád velem ezeket a progikat nagyon megköszönném, mert csak remélem h kijavitottam a bas fájlban a hibát. Ezért kérem h aki le tudja forditani küldje el nekem. Ha esetleg megkaphatnáma pbp-t is azért külön köszönet.....
itt vannak a lefordított hexek, kisebbet a 2.50b-s nagyobbat a 2.46-os picbasic csinálta mpasmel.
Megkaptam közben a pbp-t sikeresen le is forditottam, a tesztelés majd este. Köszönöm mindenkinek a joindulatát és segitségét. Remélem innentől már boldogulni fogok.
Sikerült megtalálnom és kijavitanom a hibát ill. leforditani a programot minden jól működik.
Nagyon köszönöm mindenkinek hogy segitett, ismét van fűtés...
Hello!
Most kezdtem tanulgatni a programozást egy nagyon egyszerű dolgot szeretnék megvalósítani.Méghozzá egy nyomógomb figyelést a PICkit2 gyári programozót és a hozzá járó kis panelt Van benne egy 16F887 A C porton vannak a ledek és az B0lábon a nyomógomb csak a ledeket ki be szeretném kapcsolgatni Ezt a progit írtam de nem műxik valamiért: ledek var portd S1 var portb trisd=0 trisb=1 KEZD: If S1=1 then Ledek=1 else Ledek=0 endif Idézet: Akkor miért a D portot választottad ki? „A C porton vannak a ledek..”
Igazad van bocs rosszul írtam a D porton vannak a ledek ahogy a progirészletben is írtam.
Idézet: „If S1=1” Magas szintre kapcsolod amikor lenyomod?
huh akkor ez is rossz volt most néztem meg a kapcsirajzot az s1gnd-re húzza ha lenyomom a lábat de átírtam és így sem működik mellékletben felteszem a rajzát a panelnak amit működésre szeretnék bírni.
Esetleg egy
Idézet: a végére? Nem tudom, milyen kódot generálhat, de magától aligha találja ki, hol van a főciklus. Anélkül meg szalad a programmemória végéig, majd kezdi elölről.„GOTO KEZD” Ha asm file-t is generál fordításkor, mindjárt látható lenne, mi a helyzet.
Hello javítottam amiket írtál de még mindig nem műxik.Felteszem a bas és az asm file-t is.
Ez lett volna a következő...
Azért akartam végigvezetni lépésről lépésre, hogy rájöjjön és megértse. Tehát a magyarázat: A progi megnézi a gombodat és látja, hogy nincs lenyomva és ezért sötét marad a led. Ezután már nem nézi meg többször. Tehát ahogy kobold padaván mondja kellene egy végtelen ciklus amiben a mag van. A gotokezd nem ugyanaz mint a goto kezd.
kösz hogy foglalkoztok velem. Nekem most a goto kezd utasítást kell használnom ugye? a progit így írtam át de még mindig nem jó:
ledek var portd S1 var portb trisd=0 trisb=1 KEZD: If S1=0 then Ledek=1 else Ledek=0 endif goto kezd
Ha nem reklamál a fordító azért, mert összevissza írsz kis- és nagybetűkkel, akkor passz... Most kell elővenni a program Help-jét, és nézni benne egy mintaprogit.
vagy inkább most kellene elkezdeni asm-ben programozni...
Kobold mesternek igaza van. Következetesen kéne használni a változók neveit és a kifejezéseket is, nem pedig össze-vissza. Ha meghatározod, hogy Ledek, az nem ugyanaz mint (a kisbetüs) ledek.
Mi a manónak ismétlem kobold mestert...?? |
Bejelentkezés
Hirdetés |