Fórum témák

» Több friss téma
Fórum » PIC BASIC
 
Témaindító: hinar_, idő: Máj 7, 2008
Témakörök:
Lapozás: OK   16 / 23
(#) Thowra válasza glaci hozzászólására (») Jún 7, 2013 /
 
Jobban megnéztem, úgy néz ki nem jó a negatív hőmérséklet kijelzés se.
Ez független a módosításoktól.
Hol találtad a kapcsolást?
A hozzászólás módosítva: Jún 7, 2013
(#) glaci válasza Thowra hozzászólására (») Jún 7, 2013 /
 
Erről az eszközről van szó
Nos, most már tulajdonképpen rendben vagyunk. Ami egy készülék építés során hibaként elő jöhet, az szinte mind előjött. Hibás nyákrajz, vagyis elkötés, hibás beépített alkatrész, már az őrületbe kergetett. Az a szerencse, hogy korábban megépítettem közös katódos led kijelzővel és évek óta hiba nélkül működik, de csak az az egy kijelzőm volt, viszont közös anódosból, (méh-telepi roncs újrahasznosítás) viszonylag több. Az előző kapcsolást keltetőben használom és mint mondtam régóta hiba nélkül. Így aztán nem adtam fel a sorozatos kudarc ellenére sem. A negatív tartományt tulajdonképpen nem használom, mindig csak 20 fok felett, úgy hogy ha ennek a megjelenítése rossz, vigye kánya.
Már nekikezdtem, hogy átírom pascalba, amit valamikor meg is teszek, de hamarabb kellett egy másik, a kikelt csibék műanyájának, így jutottam el hozzád.
Egyébként ami most felróható még, hogy a hiszterézis állításánál a nem használt első digit nem nullán áll, hanem 8-at mutat. kezdetben arra gyanakodtam, hogy azért nem kapcsol be a fűtés mert hibás bemeneti értéket észlel, aztán kaptam a fejemhez, hogy ennek ehhez semmi köze, végül a soros led dióda szakadása szedett rá.
Még egyszer köszönöm a segítséget, ha én tudok bármiben segíteni szólj, akár pm-ben is.
(#) Thowra válasza glaci hozzászólására (») Jún 7, 2013 /
 
Örülök, hogy tudtam segíteni
(#) Thowra hozzászólása Júl 7, 2013 /
 
Üdv mindenkinek!
Tud valaki olyan utasítást amivel egyszerűen megoldható ez:
  1. ha valami nagyobb mint 10 de kisebb 20 akkor szam=1

Több IF megoldaná, külön vizsgálva a két oldalt de hátha tudtok egyszerűbbet.
Előre is köszönöm.
(#) nagym6 válasza Thowra hozzászólására (») Júl 7, 2013 /
 
IF valami>10 AND valami<20 THEN szam=1
Nem próbáltam, de úgy emlékszem ilyet csináltam, jó volt.
Úgy biztosan jó, ha a két feltétel változója más, pld:
IF valami>10 AND masik<20 THEN szam=1
Próbáld meg kiderül.
Picbasic - MicroCode Studio.
(#) Thowra válasza nagym6 hozzászólására (») Júl 7, 2013 /
 
Működik, köszönöm.
(#) mgy válasza Thowra hozzászólására (») Júl 8, 2013 /
 
szam=valami/10
Amennyiben a szám értéke más szempontból fontos, akkor
if valami/10=1 then
szam=1
else
szam=0 : rem akármi
endif

Üdv mgy
(#) nagym6 válasza mgy hozzászólására (») Júl 8, 2013 /
 
Elnézést, hogy beleszólok, egy hiba van: (ha jól kalkulálok)
valami=10 esetén is szam=1 lesz.
A kérdésben pedig "ha valami nagyobb mint 10" , tehát 10-nél még nem adhat szam=1 értéket.
A hozzászólás módosítva: Júl 8, 2013
(#) Thowra válasza nagym6 hozzászólására (») Júl 8, 2013 /
 
Igazad van, szerencsére ahova kell ott nem gond.
Lényegnébe egy potis joystick kezelése lesz a cél, de rádión nem a potik állását akarom átküldeni hanem a 'sebességváltó' fokozatait. Ha adott tartományba van tolva akkor vált sebességet.
(#) mgy válasza nagym6 hozzászólására (») Júl 8, 2013 /
 
Igaz !
Nagyon leegyszerűsítettem.
Üdv Mgy
(#) Thowra hozzászólása Aug 12, 2013 /
 
Üdv!
Készítek egy nagyobb programot amibe rengeteg I2C EEPROM írás/olvasás lesz.
Szeretnék informálódni a bstart, bstop, brestart utasításokról, milyen esetekbe és gyakorisággal kell használni?
Előre is köszönöm.
(#) nagym6 válasza Thowra hozzászólására (») Aug 16, 2013 /
 
Nem tudom a választ, de pld. "Picbasic - MicroCode Studio." -nál ilyenek utasítások nem kellenek, és rettenetesen egyszerű, tökéletes az I2C EEPROM írás/olvasás.
A hozzászólás módosítva: Aug 16, 2013
(#) csabi975 hozzászólása Szept 1, 2013 /
 
Sziasztok.
Olyan kérdésem lenne, hogyan tudom ennek a pick-nek a GP.1-es lábát figyelni. Én ráraktam egy gombot ezt kellene figyelnem. Majd ha 1 lesz, akkor induljon el a led villogás GP.0. Csak simán ,ha figyelést kihagyom akkor működik így hardveres gond nem lehet.
Oshon Softvert használok picbasicben.
Pic16f84 és Pic16f877 működik. Itt miért nem? Ezen a lábon ilyet nem lehet figyelni? Lehet amatőr kérdés.
Program:
  1. kezd:
  2. If GP1 = 0 Then Goto kezd
  3. If GP1 = 1 Then Goto indul
  4. indul:
  5. High GP0
  6. WaitMs 500
  7. Low GP0
  8. WaitMs 500
  9. If GP1 = 0 Then Goto kezd
  10. If GP1 = 1 Then Goto indul
  11. Goto indul

Segítségeteket ellőre is köszönöm.
(#) Thowra válasza csabi975 hozzászólására (») Szept 1, 2013 /
 
Üdv!
MIlyen PiC ez?
Felhúzó ellenállás van a gombnál vagy belső felhúzó?
(#) csabi975 válasza Thowra hozzászólására (») Szept 1, 2013 /
 
Szia.
Van felhúzó ellenállás 22kohm. Pic12f675 8 lábú kicsi pic ezért gondoltam erre ,mert így kis helyen el tudom rakni. Ugyan így használom a hardvert a pic16f877 -nél és ott nincs gond.
(#) Thowra válasza csabi975 hozzászólására (») Szept 1, 2013 /
 
Én a proton basicet használom, ott a tris beállítása trisio, a port beállítása gpio szóval van, nem ez lehet a gond (lehet abba a forditóba így van, nem ismerem)?
(#) csabi975 válasza Thowra hozzászólására (») Szept 1, 2013 /
 
Akkor elméletileg ha ezt beírom
  1. TRISIO.1 = 0

Akkor bemenet lesz a a GP1-es port ?
(#) Thowra válasza csabi975 hozzászólására (») Szept 1, 2013 /
 
Nem, így kimenet lesz.
A trisnél ha valami 1 az bemenet (az 1 majdnem úgy néz ki mint az I, a 0 meg mint az O, így hamar megtanulható az input/output beállítás).
Port esetén 0= alacsony, 1= magas szint.
(#) Thowra válasza Thowra hozzászólására (») Szept 1, 2013 /
 
Én így próbálnám:
  1. kezd:
  2. waitms 10
  3. If GPio.1 = 0 Then Goto kezd
  4. indul:
  5. High GPio.0
  6. WaitMs 500
  7. Low GPio.0
  8. WaitMs 500
  9. If GPio.1 = 1 Then Goto indul
  10. Goto kezd
(#) csabi975 válasza Thowra hozzászólására (») Szept 1, 2013 /
 
Holnap beégetem reggel és kipróbálom. Minden képen jelzem ,hogy mi történt. segítséged köszönöm . Pic siulatorban működik.
(#) nagym6 válasza Thowra hozzászólására (») Szept 1, 2013 /
 
Szerintem 2. 4. 9. sor kimaradhat. Nem tudom kipróbálni, csak gondolom.
A hozzászólás módosítva: Szept 1, 2013
(#) mgy válasza csabi975 hozzászólására (») Szept 1, 2013 /
 
Szia !
Szerintem a TRISIO=2 utasítással az elején kezeli a GPIO.1-et bemenetként.
Egyébként próbálkozhatsz a GPIO.3 ( MCLR) magasra húzásával (pl. 4.7k).
Nálam is szimulátor szerint fut, viszont a nem használt GPIO.3-at magasra húzásával működött a gyakorlatban.
Üdv mgy
(#) eSDi válasza csabi975 hozzászólására (») Szept 1, 2013 / 1
 
Üdv!

Én így szoktam a TRISIO-t definiálni. Így rögtön látni melyik láb mire van beállítva:

TRISIO = %00001001

Nem tudom, hogy mennyire helyes így ahogy a kódodban látszik, de én még nem találkoztam az oshon-os leírásban és példákban ilyen If...then-el.

Így kellene (legalábbis én így szoktam...):

If GP1 = 1 Then
Goto indul
Else
Goto kezd
Endif

Ja és ha nem használsz analóg bemenetet, akkor tegyél a program első sorába egy AllDigital utasítást.
A hozzászólás módosítva: Szept 1, 2013
(#) csabi975 válasza eSDi hozzászólására (») Szept 2, 2013 /
 
Köszönöm a segítséget sikerült. Jó lett amit írtál.
  1. AllDigital    'ez kellett minden képen.
  2. WaitMs 100
  3. kezd:
  4. If GP1 = 1 Then
  5. Else
  6. Goto kezd
  7. Endif
  8. indul:
  9. High GP0
  10. WaitMs 500
  11. Low GP0
  12. WaitMs 500
  13. Goto kezd

Az én IF kódommal is működik. Viszont a szabályos az ahogy itt leírtam. Köszönöm a segítséget.
(#) dcsabi hozzászólása Szept 12, 2013 /
 
Sziasztok. Egy segítséget kérnék a következő feladathoz.
PIC18F4520-al próbálkozok Oshon Basic-kel. Elég jó megbarátkozatam vele, (mert akciósan a műlt myáron pénzt is adtam érte) Az akku töltős minta projekt sok mindenben segített. Egy 4x20-s LCD-re már komoly menű strukturát tudtam vele varázolni ékezetes betükkel kb 30 változót be is tudok állítani . A program része az javarészt még hátra van. A nyomógombokhoz a jelzett példa szerinti megoldást használom, vannak előnyei és kötöttségei, de alkalmazkodok hozzá. Amiben a konkrét segítség kellene: -egy időalapból kiléptetett interrupt-al megvalósított impulzus amit a főprogramban mindig tudok használni, állítani. Pl: 0,1mp től 20mp-ig és ez akkor is adja a pulzát, ha éppen a menűben vagyok. viszont le tudjam tiltani és engedélyezni is a fő menüben. Az impulzus tehát folyamatos legyen, pl: 0,5mp a szünet 3mp. és mindkét időt lehessen állítani.
A Waitms utasítás nem jó erre a célra. Továbbá, állítólag az Eeprom írást megzavarhatja az interrupt használata, ennek ide vonatkozó letíltása is érdekelne. Az említett nyomógombos menű a RD.7 porton csak részben működik a RD.6-on már teljes értékű, továbbá a RB porot használom még, az is jó (ötlet, mi lehet az oka?)
A hozzászólás módosítva: Szept 12, 2013
(#) eSDi válasza dcsabi hozzászólására (») Szept 12, 2013 /
 
Üdv!

Az megszakításos dologra egyenlőre nincs konkrét ötletem, talán a 16bit-es timer-el össze lehetne hozni, de a 20mp az elég hosszú idő. A kapcsolására, ha más nem lesz, akkor egy ÉS kapuval hardveresen tudod kapcsolni, bár ez egy külön IC-t jelent pluszban.
EEPROM műveletek előtt ki kell kapcsolni az INTCON.GIE-t (Global interrupt enable), ez BASIC-ben egy sima Disable utasítás. A müveletek után pedig egy Enable utasítással visszakapcsolod. A nyomógomb problémát nem értem, így működnie kell. Én is ezt a megoldást használom mindig és nem volt még gond vele. Talán a nyákon van a hiba, ha egyáltalán már azon van...
(#) dcsabi válasza eSDi hozzászólására (») Szept 12, 2013 /
 
Az idő lehet rövidebb is, aztán tovább kell osztani, csak legalább egy 100/100ms-s példát lássak...A nyomógombbal úgy jártam, hogy valójában 5db van a panelon és optóval van illesztve. 10k-val pozitív tápra húzva és 0-ra kapcsol. A nyomógombos rutinban értelemszerűen átírtam a szinteket. Először az volt az enter/ belép gombom. Be tudtam lépni, csak mikor a waitkey rutinban kellett volna kapcsolni, nem csinált semmit.
Átírtam a konfigban a RD.7 lábat RD.6-ra -ez az ötödik nyomógomb- azóta a többivel teljes értékű. A nyákon nincs hiba szerintem, ez egy viszonylag profi "gyári" kétoldalas furatfémezett, forrasztásgátlós. (TQFP44 a PIC18F4520) Arra gondoltam, hogy az RD.7 láb másra is konfigurálható és a Basic progi nem teljes értékűen kezeli le.
Az Eepromos dolgot azt értem. Köszi...
Az 1Wire rutint szerinted lehet több bemeneten is használni egyszerre?
A hozzászólás módosítva: Szept 12, 2013
(#) GPeti1977 válasza eSDi hozzászólására (») Szept 12, 2013 /
 
Beállítod a megszakítást x időre, a megszakításban inkrementálsz egy változót, ami ha elér egy értéket nullázod és egy bit változót 1 re állítasz, amit a főprogramban kinullázol mikor végrehajtódott a feladat.
(#) eSDi válasza dcsabi hozzászólására (») Szept 13, 2013 /
 
A nyomógombra nincs ötletem, jónak kellene lennie. A "D" portot még a párhuzamos port és as CCP1 használja, de ezek csak akkor okozhatnának galibát, ha valamelyiket ténylegesen használnád. A 1Wire-t próbáld ki menet közben átkonfigurálni, mert máshogy nem lehet megoldani szerintem.
(#) eSDi válasza GPeti1977 hozzászólására (») Szept 13, 2013 /
 
Igen valami ilyesmi kell majd, de ez így nem lenne pontos. Ráadásul a főprogramot is tele kellene tűzdelni a nullázással. Szóval mindent a megszakításban kellene végrehajtani.
A cél, hogy a főprogramban (ha jól értettem dcsabi-t), csak a ton és a toff érték változtatásával és a tiltással/engedélyezéssel kelljen törődni.
A hozzászólás módosítva: Szept 13, 2013
Következő: »»   16 / 23
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem