Fórum témák
» Több friss téma |
Igen, mindaddig végrehajtja az egymás után következő sorokat amíg nem találkozik ugró utasítással vagy gosub esetén return utasítással.
A cimkékhez bármikor lehet ugrani, de neked kell gondoskodni arról, hogy a rutinból a megfelelő helyen kilépjen.
Köszi szépen kolega úr, kezd tisztulni a dolog. Gondolom, ha a cimke végénél talál return-t, akkor ott holytatja a futást, ahonnan az adott cimkéhez kellett ugrania.
Igazából a basic nyelvek 3 féle ugró utasítást használnak,
GOSUB - subrutinhívás vagy END SUB -ig megy vagy a RETURN -ig. GOTO - feltétlen ugrás a megadott cimkére vagy sorra. CALL - subrutinra vagy cimkére ugrás RETURN -ra vissza a hívás utáni sorra. Az adott feladat szerint kell kiválasztani a megfelelőt.
Esetleg próbáltad már a PROTON IDE programot?
Igen kényelmes basic felülete van.
Eddíg én Bascom-al programoltam AVR-eket sikeresen. Bonyolultabb vezérléseket is sikeresen összehozva.
Eddíg PIC-el nem bajlódtam, gondoltam arra megvannak a megfelelő emberkék. Ám most úgy adódott, hogy a jelenlegi melóhelyemen egy más áltam picbasic-ben vagy hasonlóban összehozott progit kell befoltoznom. Nehezen akadtam rá mindenre a témát illetően, és mint látszik, még mindíg vannak vakfoltok. Haladok a dologgal, de nagyon nehezen átlátható ez az egész program:S Ha valakinek AVR-el kapcsolatban lenne kérdése basic programozás terén, akkor tudnék segíteni, mert abban otthon vagyok és épp ezért volt egy kis homályom ehhez is. Lesz még kérdésem nem titok, de igyekszem mindenre magam rájönni. A cimkék kezelését illetően sokat segytettél, köszönöm mégegyszer. Most pl az SPI busz kezelését nézegettem, de az még egy nagy homály. Tudom, hogy a PIC18EXT.BAS fájlban vannak az egyes eszközök kezeléséhez való regiszterek, de nem tudom hogy kell őket használni. De ez egy másik történet, ezt majd máskor aszem.
Most egy olyannal nyomom, hogy MicroCode Studio Plus ver:3.0.0.5
Na, kolega úr, most szedtem le a PROTON IDE 1.0.4.6 + PROTEUS 7.1 sp4-et.
Ám a proton azt mondja fordításkor, hogy: ERROR: Not enough user RAM for all the variables used. Reduce the amount, or switch to a larger device.
Stimm. Az a baj, hogy nem 18F452-es pic van kiválasztva, hanem sztem az alap 16F84-es. De hogy tudom átállítani? Vagy a kódból automatice tudnia kellene, hogy milye divájsz kell?
Ezekkel az utasításokkal lehet a céltipust beállítani:
Device 16F628A 'PIC tipus XTAL = 4 'Quartz frekvencia MHz Config XT_OSC , WDT_OFF , PWRTE_OFF , BODEN_OFF , LVP_OFF , PWRTE_OFF , CP_OFF értelemszerűen írd át a megfelelő dolgokat.
Jelenleg a PBP 2.47-es verziót használva próbálom a 16f887-es analóg bemeneteit használni.
A 877-nél működő dolgok a 887-nél nem jönnek össze. Próbáltam az ANSEL és az ADCON1, ADCON2 dolgokat beállítani, de valahol tévedek. Mellékelek egy egyszerű programlistát, ha valaki kapásból kiszúrja a hibáimat, megköszönném.
A 887-est nem ismerem, ha lesz időm átnézem az adatlapját hátha sikerül valamit kiokoskodni belőle.
Hali
Ez a program nem teljesen jo. Tobb hibaja van. Pl : Be kellene kapcsolni az AD-t. ADCON0.0 =1. Be kell minden mereskor rugni az AD-t: ADCON0.1 =1 majd megvarni mig a meres vegen 0 lesz. Minden meres indulaskor at kell valtani a kivant csatornara, es varni egy kicsit a mintavetelezes idejere( 50 uS). Igaz nem tudom mit csinal az altalad hasznalt ADCIN fv. , de igy biztos hogy mukodni kell a '887-en. A neten talalhato mintaprogram : rentron AD progi. Probald meg atalakitani, mert ez '877-re irtak. Udv Vili
Köszi a segítséged !
Amit ajánlottál programot, az jó lett volna, de nem a PICBASIC ADCIN utasítását használja. Ezért könnyű a műkedvelőknek (nekem) a PBC, mert ezeket az ADCON bitfigyeléseket maga megoldja, és egy lekéréssel adja a regisztertartalmat. Ehhez viszont jól kell beállítani a DEFINE ADC funkciókat, ahol én tévedtem a 877-hez képest. Csodálkozom azon, hogy ez a topic nem népszerű, pedig a PBP alkalmas arra, hogy kezdők is hamar tudjanak boldogulni. Szivesen felvenném a kapcsolatot PBP-hívőkkel. Mellékelem azt a pársoros programot, mellyel egy analóg lekérdezés megvalósítható.
Tiszteletem Kolega Urak!
Kérdés csak annyi, hogy ha több picet teszek egy panelra, akkor lehet egy közös programozó csatija mindnek, ha az MCLR lábakat egy jumper sorra vezetem ki és egy juperrel lehet kiválasztani, hogy melyiket akarom programozni. Gondolom, hogy ha íly módon, csak egy egyik pic MCLR lába van bekötve, akkor a többi figyelmen fívül hagyja a programozási periódust...
Arra azért majd gondolj, hogy a soros programozói vonalakat (PGD és PGC) nem lehet csak úgy összekötni egymással, hiszen mi van akkor, ha több PIC-ben már éppen program fut és többnél ezek a lábak kimenetnek vannak konfigurálva.
Tiszteletem Urak!
Lenne egy olyan kérdésem, hogy ebben a PICbasic Pro-ban a PIC18EXT.bas fájlhoz nincs-e valami leírás? Mert látom, hogy az abban lévő változók egyes bitjeinek állapotával lehet eszközöket működtetni. De nem tudom, hogy hogyan? Pl: mi az INTCON, INTCON1, INTCON2 és INTCON3? de ugyanez a szitu a többi benne lévő dologgal is. Ötlet?
INTCON = Interrupt Control register
Azon regiszterek, amelyek a megszakításokkal kapcsolatos beállításokat tartalmazzák. Ha előszedsz egy általánosan használt, pl. 18F4550-es adatlapot, akkor megtalálhatod ezeknek a még pontosabb és részletezőbb leírását.
Akkor amik a PIC18EXT.BAS fájlban vannak, azok az adott pic adatlapjában ilyen néven megtalálhatóak és az egyes bitek dolgai kibogarászhatók az adatlapból?
Faca! Meg is nézem gyorsan. Köszi.
Jó lenne, ha meg tudnád oldani, hogy a többi mikrovezérlő a programozás ideje alatt RESET-be legyen húzva, s akkor feltehetőleg nem zavarnak be a PGC/PGD vonalakon.
A magam részéről csak azt tudom mondani, hogy a PICBASIC kezdetben kényelmes, azután nehézkes.
Elismerem, amit írtál, hogy kezdőknek ajánlható, meg mondjuk nagyon sok egyszerű feladathoz is merem ajánlani. Viszont egy picit összetetteb feladat esetén már pillanatok alatt megtelik a PIC pici agya. Nem beszélve arról, hogy a megszakítások és egyéb nyalánkságok tekintetében a PICBASIC erősen bekorlátoz azáltal, hogy amíg egy utasítássor nem fut le, addig a megszakítások tiltva vannak. Képzelj el egy PAUSE utasítást másodperces időtartammal! Nos, szerintem ezért nem olyan aktívak a fórumon. De lehet, hogy annyira problémamentes a PICBASIC-kel programozni, hogy nincs kérdés, amit meg kellene vitatni.
Üdv Mindenkinek!
Nagyon kezdő vagyok a picsimulatoride-vel itt viszont egész jól ment a programozás ( led vill. freqout stb...) De úgy láttam, hogy sok utasítást nem kezel ( DTMFOUT, SOUND, stb...) ezért letöltöttem a PBP 2.6-ot itt , de ezel nem megy. Próbáltam MPLABban Microcode Studioban, pedig minden működik lefordítja asm-be majd HEX be és betöltöm pickit2vel és nem működik. A picsimulatoridevel minden ment egyből, hol lehet a hiba? Segítséget kérek, remélem én is tudtam a többi kezdöknek!
Ha különböző gyártók különböző fordítóit kevered, akkor az lenne a csoda, ha működne a program. C fordítóból is van 5-6 féle, azokat sem lehet keverni. El kell dönteni, hogy melyiket használod, s lehetőleg a hozzávaló dokumentációt kell használni. Utána már csak azon kell imádkozni, hogy a dokumentáció érvényes legyen (s nem a kettővel, hárommal korábbi verzió leírása).
Biztos így van, de PBP működik MPLABban meg Microcodeban is, hibaüzi nélkül lefordítja pl.a blink.bas fájlt, de mikor betöltöm a PICbe nem csinál semmit. Míg ezt a fájlt ( persze értelemsz. módosítva PAUSE helyett Waitms stb.) lefordítva és betöltve működik a picsimben. Lehet, hogy ez nekem magas.
Láttam már karón varjút, igaz nem PIC, hanem PC volt, de tegnap egy fél napig szenvedtem egy triviális program beüzemelésével (Liberty BASIC-ból FreeBASIC-be). Végül kiderült, hogy az elvileg helyesen, és a mintapéldákkal megegyező módon átírt program azért nem működott, mert az egyik beépített könyvtári modulnak (OPEN COM) a FreeBASIC-ban lelkiélete van, s a vártnál több paramétert is meg kell adni, nem működik a default értékekkel.
Ha a szimulátorban megy, de az áramkörben nem, akkor első körben a konfigurációs beállításokat kellene ellenőrizni (WDT letiltása, oszcillátor beállítása), továbbá az analóg funkciók tiltását a digitális I/O-hoz szánt lábakon.
Itt a két fájl: a PBP gyári és nem működik a másik az Picsimulatorral működik. Mind a kettőt pickit2-vel töltöttem 16f627a-ba.
A PBP_BLINK.BAS programban nemcsak a konfigurációra vonatkozóan nem látok semmi beállítást, de még azt sem tartalmazza, hogy milyen mikrovezérlőt és annak melyik portját akarod használni.
Mindenesetre a Manual első példájában legalább a portot megnevezi, a mikrovezérlőt meg a fordításnál kell megadni (máskülönben PIC16F84-re fordít).
Nem túl népszerű ez az oldal de én még kitartok. A gyári oldalról Bővebben: Link letöltött HEX fájl sem működik, a *bas fájlt meg le sem lehet tölteni. Jelen esetben egy sample blinkx4.HEX fájlt próbáltam betölteni 12f675-be.
Pedig a szimulátorban működik (blinkx4.hex).
A konfigurációs regiszter 3FFC (belső oszcillátor, WDT ki, PWRT ki, MCLRE engedélyezve, BRown-ot figyelés engedélyezve, kódvédelem kikapcsolva) Ez pedig a forráskód működő linkje: BLINKX4.BAS |
Bejelentkezés
Hirdetés |