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   8 / 23
(#) trudnai válasza Zsora hozzászólására (») Nov 23, 2010 /
 
Igenm ahogy icserny kollega megirta, regen a 'dim' szo jelentette a tomb deklaraciot, es a valtozokat nem kellett deklaralni egyaltalan. 'dim' azaz 'dimmension' -- azaz van dimmenzioja, tehat nem egyetlen szambol vagy akarmibol all...Na mindegy, en hibam, hogy nem ismerem ezeket az elfajzott Basic utanzatokat.
(#) Zsora válasza trudnai hozzászólására (») Nov 24, 2010 /
 
Hogyne emlékeznék a Commodore 64-es időkre!
Ott valóban csak a tömbök deklarálásához kellet a DIM utasítás, az egyszerű változókhoz nem. Viszont ha jól tudom, ott csak két változó típus volt; a sztring és a lebegőpontos szám. A karakterfüzért a név utáni $ jel különböztette meg a numerikus változótól.

Egyébként semmi gond nincs magával a Basic nyelvvel, sokkal emberközelibb, mint pl. a C. Én a C nyelvet gyűlölöm, de nagyon. A VisualBasic-kel én minden nekem szükséges dolgot meg tudok csinálni. Teljesen megbízható és áltlátható. Ha meg valami folytán a Basic nem lenne elég, akkor ott van az Assembly.

Visszatérve a PIC-es mikroBasic-re:
Elég bugos mind a 8 bites, mind a 16 bites verzió. Néhány hiba - így hirtelen:
- a FOR...NEXT...STEP ciklus negatív lépésköznél hibásan működik.
- a FOR...NEXT ciklus nem fejeződik be sosem, ha a ciklusváltozó és végérték típusa nem azonos.
- Debugger módban a Run To Cursor parancs nem áll meg a kijelölt sornál ha a szubrutinok göngyölve vannak.
- Debug módban a változók értékét csak a változás után mutatja pár lépésig, majd azt írja: Inaccessible
- a göngyölt szubrutinokat gyakran minden látható ok nélkül spontán kibontja és úgy hagyja.
- a kurzor gyakran mozgás (törlés) közben véletlen helyre ugrik. (...és olyan törlődik aminek nem kellene)
(#) trudnai válasza Zsora hozzászólására (») Nov 24, 2010 /
 
Igen, az redben van odaig, hogy bele tettek mas tipusokat is, de konyorgom, miert epp a 'DIM' szot hasznaltak fel egy masik celra? Lehetett volna 'VAR' pl... (Amugy megtehettek volna maskepp is, pl az integer #-el kezdodik, ahogy a string tradicionalisan $-al kezdodott, na mindegy.) Es ez nem csupan a Commodore Basic-jeben volt igy, tehat, hogy a 'DIM' a tombok deklaralasara valo. En Apple II-n tanultam, es ha hiszed, ha nem az AppleSoft Basic-et a Microsoft fejlesztette ki anno. Csak azota a kis cegbol nagy lett es elfelejtettek honnan indultak el...

Ami a bugozast illeti: Debuggolashoz nem lehet kikapcsolni az optimalizalast? Vagy nem azzal van a gond? Amugy miert eppen microBasic?
(#) Zsora válasza trudnai hozzászólására (») Nov 24, 2010 /
 
Ismersz más Basic fejlesztői környezetet, ami támogatja a 16 bites PIC-eket? (ill. az AVR-t is)
...Vagy te más nyelvre gondoltál?
(#) vilmosd válasza Zsora hozzászólására (») Nov 24, 2010 /
 
Hali
Esetleg a "Tehenes" GCBasic.. De a kereso felhoz meg vagy 8-10 ingyenes BASIC varit.
Csa Vili
(#) Zsora válasza vilmosd hozzászólására (») Nov 25, 2010 /
 
Szia!
Természetesen én is találtam más progikat, de minddel az a gond, hogy csak 8 bites PIC-et támogatnak. A "tehenes" basic-kel is ez a helyzet.
Mindegy, már nem érdekel az egész. Úgy döntöttem hogy assembly nyelvet használok a továbbiakban. Csak kis időbe telik, amíg újra belemelegedek, mivel már vagy 15 éve nem programoztam assemblyben.
(A Motorola 680x0 még ma is A CSÚCS számomra. Egy álom a programozása.)
(#) icserny válasza Zsora hozzászólására (») Nov 25, 2010 /
 
Jó az assembly, csak egy kicsit szaporátlan vele a munka. A C valamivel kényelmesebb. Nem utolsósorban a nagyobb alakalmazásokat támogatói csomagok (TCP/IP, USB, fájlrendszer kezelés, grafikus könyvtárak) is C nyelven vannak közzétéve.
(#) Zsora válasza icserny hozzászólására (») Nov 25, 2010 /
 
Igazad van, csak hát én rühellem a C nyelvet.
A Basic-et azért szeretem mert emberközeli és könnyen/gyorsan lehet használni, az Assemblyt pedig azért mert bármi megoldható vele és jól optimalizálható kódhosszra/sebességre.
(#) alibaba40 hozzászólása Nov 26, 2010 /
 
Üdv!
itt találtam egy jó kis kapcsolást, megépítettem 2x is nagyon jól működik.
Csak hex fájl van csatolva (assembly-ből se sokat értettem volna). Ezt basic-ben meg lehet egyszerűen csinálni? Át szerettem volna alakítani, mondjuk az időzítést, vagy esetleg még egy csatornát.
Én egyébként a proton IDE-t használom, itt a fórumon ajánlotta valaki, szerintetek milyen?
(#) Thowra válasza alibaba40 hozzászólására (») Nov 26, 2010 /
 
Üdv!
A Proton jó, bár nálam időnként hibát jelez és akkor újra kell indítani.
(#) vilmosd válasza alibaba40 hozzászólására (») Nov 26, 2010 /
 
Hali
Itt az ASM, ha erdekel.
Csa Vili
Ps: MPLAB ingyenes fejleszto!
(#) alibaba40 válasza vilmosd hozzászólására (») Nov 28, 2010 /
 
Köszi, Basic-ben nem tudna valaki valami hasonlót?
(#) kovizozi hozzászólása Jan 29, 2011 /
 
Tisztelet!
Egy olyan PIC-es kütyüt szeretnék építeni amit infra távirányítóval tudnék irányítani.
van egy TSOP1736-om. A problémám ott kezdődik, hogy mit tudok én kezdeni az infra vevő jelével PIC BASIC-ben? Mivel értelmezzem? a PULSIN valamiért nem sokat csinál nem növeli a változót semmivel sem hiába kapja a jelet.
Valakinek valami ötlet esetleg?
(#) imbra hozzászólása Feb 1, 2011 /
 
Üdv! Pic12f675-re írtam egy egyszerű led villogtatót mikrobasic-ben, nem működik. Hol lehet a hiba:

program LEDVILL

main:

TRISA = 0x00

While TRUE
PORTA = 0x00
Delay_ms(2000)
PORTA = 0xFF
Delay_ms(1000)
PORTA = 0x00
wend

end.

Hasonlót írtam pic16f627A-ra ott működik, itt meg nem.
(#) potyo válasza imbra hozzászólására (») Feb 1, 2011 /
 
16F675-ben nincs PORTA, valamint az AD bemeneteket sem ártana letiltani.
(#) imbra válasza potyo hozzászólására (») Feb 1, 2011 /
 
Üdv! 12F675-ben. Tudnál benne segíteni?
(#) vilmosd válasza imbra hozzászólására (») Feb 1, 2011 /
 
Hali
Mint potyo irta, abban GPIO, es TRISIO van, nem PORTA, es TRISA.
(#) imbra válasza vilmosd hozzászólására (») Feb 2, 2011 /
 
Üdv!

Persze, megnéztem az adatlapot is. Átírtam de mégsem akar jó lenni nem villog a led. Mi lehet a baj?

main:

ANSEL = 0x00
GPIO.0 = 0x00
TRISIO.0 = 0x00

While TRUE
GPIO.0 = %00000000
Delay_ms(1000)
GPIO.0 = %00000001
Delay_ms(1000)
wend

end.
(#) icserny válasza imbra hozzászólására (») Feb 2, 2011 /
 
Idézet:
„Persze, megnéztem az adatlapot is.”
De nem elég figyelmesen... Azt is írja, hogy a GPIO inicializálásakor CMCON-ba írj 7-et (analóg komparátor letiltása).
(#) imbra válasza icserny hozzászólására (») Feb 2, 2011 /
 
Beírtam de így sem csinál semmit.....
(#) icserny válasza imbra hozzászólására (») Feb 2, 2011 /
 
Konfigurációs biteket hogy állítottad be?
WDT le van tiltva?
INTOSC van kiválasztva?
MCLR fel van húzva?

Nekem így működik. Igaz, nem PICBASIC, de legalább annyira olvasható (JAL).

  1. include 12f675
  2. pragma target clock 4_000_000
  3. pragma target OSC  INTOSC_NOCLKOUT
  4. pragma target WDT  disabled
  5. pragma target MCLR external
  6. enable_digital_io()
  7. alias   led      is pin_A2
  8. pin_A2_direction =  output
  9. forever loop
  10.    led = on
  11.    _usec_delay(250_000)
  12.    led = off
  13.    _usec_delay(250_000)
  14. end loop
(#) imbra válasza icserny hozzászólására (») Feb 2, 2011 /
 
Üdv! Igen. A mikrobasic lefordítja, nem talál hibát, de a proteus-ban az áramkör Program or EEPROM data has invalid adress (2000) for this device hibaüzenetet ad.
(#) vilmosd válasza imbra hozzászólására (») Feb 2, 2011 /
 
Hali
Probald ki a MikroE szimulatoraban. Szerintem egyszerubb ott kiprobalni, mint mas programban. Tudod nezni a regiszterek valtozasat, es szerintem konnyebb hasznalni, mint a proteust. Amennyiben ott jol mukodik, akkor HW hiba lehet.
(#) kovizozi hozzászólása Feb 5, 2011 /
 
Üdv!
PIC BASIC-ben hogyan lehet a Timer-t idő mérésre használni?
Olyat szeretnék hogy lemérni, hogy mennyi idő telik el a pic egyik lábának szintváltozásai között.
eddig While ciklussal oldottam meg de az lassú
  1. adcin 2, a
  2. while A<240
  3.  adcin 2, a
  4.    B=b+1
  5. wend
  6. while a>240
  7. adcin 2, a
  8. c=c+1
  9. wend
  10. while a<240
  11. adcin 2, a
  12. d=d+1
  13. wend
  14. stb...
(#) vilmosd válasza kovizozi hozzászólására (») Feb 6, 2011 /
 
Nem tudom milyen procit hasznalsz, de peldaul a TMR1 alkalmassa teheto erre a feladatra. le kell nullazni mikor bejon az egyik el, majd a masik elnel kiolvasni. Persze nem tudom a Basic hogyan kezeli a HW-t, az interruptot, de igy egyszerusiteni, es pontositani lehet az idomerest. EnAz csinaltam olyan programot (persze asm es C nyelven), ami peldaul egy 36 osztasu tarcsanak merte a sebesseget. Az opto jelet bevittem a RB 4+ valamelyik labra, es a valtozas IT-t generalt. Az IT kezeleskor nullaztam a TMR1-et, majd a kovetkezo IT-nel kiolvastam, es ujra nullaztam. Igy meg tudtam merni a sotet es a vilagos idejet is. Elotte persze be kell allitani a TMR1 eloosztot, a mukodesi modot, mindent. De az adatlap altalaban segit.
(#) alibaba40 hozzászólása Márc 4, 2011 /
 
Üdv!
Infra távirányítók jeleit szeretném dekódolni, találtam egy kapcsolást Bővebben: Link. A kimenetet rákötöttem egy másik pic-re amin van LCD de nem tudom kiolvasni. Ebben kérnék degítséget!
A
(#) Kotesz hozzászólása Márc 5, 2011 /
 
Proton Ide compilerrel lehet 12F508-at programozni?
(#) icserny válasza Kotesz hozzászólására (») Márc 5, 2011 /
 
Rajta van a támogatott mikrovezérlők listáján - ha ez volt a kérdés. Ez azt jelenti, hogy HEX állományt tudsz fordítani a Proton BASIC Compiler-rel. Azt nem tudom, hogy milyen progamozó készüléket akarsz használni, s hogy azt támogatja-e (ha nem, akkor a programozó saját szoftverével is belehet égetni a programot).

A Proton Compiler ingyenes változata legjobban a PIC18F25K20 alapú Amicus18 nyíltforrású hardvert támogatja, ami megvásárolható, de a dokumentáció alapján után is építhető. Ha valaki nem az FTDI USB-UART átalakítóval építi meg, akkor kicsit trükközni kell a Windows Registry-vel az automatikus letöltéshez, mert ostoba módon az FT232 VID/PID van bedrótozva a Proton IDE-be.
(#) Thowra válasza alibaba40 hozzászólására (») Márc 7, 2011 /
 
Üdv!
Kipróbáltam és LG videó/DVD kombó távirányítóra reagált.
A többi márka (Philips, Daewoo) nem. Rákötöttem PC re soros porton és küldi az adatokat bár van, hogy azonosat küld több gomb esetén is.
(#) alibaba40 válasza Thowra hozzászólására (») Márc 7, 2011 /
 
Üdv!
Nekem ORION tv távirányítóra reagált a legjobban, de ebben a programrészletben a 200-at 100-ra írtam át:

Getstartbits:
PuLSIN GPIO.4,0,IRpulse_length(0)
if IRpulse_length(0) < 200 then
goto getstartbits

Amúgy én átírtam 16F627a-ra, és egy LCD-vel jelenítettem meg, SEROUT helyett :LCDOUT $fe,1 ,DEC command.>
Következő: »»   8 / 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