Fórum témák

» Több friss téma
Fórum » Parallax P8x32 kezdőknek
 
Témaindító: kameleon2, idő: Okt 10, 2014
Lapozás: OK   3 / 3
(#) kameleon2 válasza snapscan hozzászólására (») Jan 28, 2015 /
 
Talán mert nem az a téma címe: Miért nem jó a Propeller? Vagy miért hú de jó a ... Ha nem haragszotok - ha igen akkor is - maradok az eredeti témánál. A chipet nem én gyártottam, nem én forgalmazom - csak használom - és erre buzdítok mindenkit, aki ismerkedni szeretne vele. Én sem kezdtem azon köszörülni a nyelvem, melyik mikrokontroller sorozatnak hány száz féle hibája van. Mert van bőven. GPeti1977 hozzászólása jogos - az ő alkalmazásához abban a konstrukcióban nem szerencsés megoldás volt a propeller - bár gyanítom én tudtam volna olyan hardver környezetet kialakítani amiben meg igen. De ez is más lapra tartozik. Én itt be is fejeztem ezt a részét. AKi tud jobbat, küldje el a chip fejlesztőinek - ugyanis a Parallax nyílt platformon tervez. Talán hajlandóak lesznek egy köztes chip legyártására is - nagyobb memóriával.
(#) kameleon2 hozzászólása Jan 28, 2015 / 1
 
Kezdjük is az elején. Mi tetszett meg elsőként a P8x32 programozói felületében? 1.) A mérete. Nem kellett több száz Mega felesleges szoftvert feltöltenem a PC-mre csak azért, hogy futtathassak egy pár kB-os programocskát. 2.) Az egyszerűsége. Lássuk csak (kép). A szoftverbe lehet kommenteket írni (nagy cucc, mondanák mások). Azonban ezek eleve TXT alapú programok és a megjegyzések is TXT alapúak. Ez már jobban tetszik, mert nem gond másolni, beilleszteni, nyomtatni. Ami azonban zseniális, hogy a program, használható dokumentációként is, mindössze egy saját Parallax karakterkészlet segítségével. A mellékelt programrészlet ezt (remélem) jól szemlélteti.

prog1.jpg
    
(#) kameleon2 hozzászólása Jan 28, 2015 / 1
 
Folytassuk, ahogyan a sorozat mondja: Természetesen jelmagyarázatot is tudunk így a rajzunkhoz biggyeszteni (jelmagyarazat.jpg). Ezzel nagyjából el is értünk a fejléc-jelmagyarázat végéhez, bár ragozhatnánk egy darabig. Az érdemi rész ezután kezdődik A "CON" feliratú rész után. Érdekessége a Propeller Toolnak (bár messze nem egyedi), hogy a megfelelő parancsokat színekkel elkülöníti a többi programszakasztól. A megjegyzések eddig halványsárgák voltak, A "CON" már egy élénkebb sárga színt kapott. Mire is jó ez a szakasz? Sok alap adat itt kap értéket, nevet, itt adhatjuk meg az órajelet, a szorzót:
  1. CON
  2.   _clkmode = xtal1 + pll16x     ' kulso kvarc * 16 -os szorzo
  3.  _xinfreq = 5_000_000          ' 5 MHz - kvarc erteke igy az orajel 5x16MHz azaz 80Mhz


Itt rendelhetjük például össze a bemenetek PIN-jeit a saját elnevezéseinkkel:

  1. Be0=0                        ' Bemenet1 legyen a P0.láb


Természetesen itt is használhatunk kommenteket. Vájt szeműeknek biztosan feltűnt, hogy hiányoznak egyes ékezetes betűk. Nos a programrészlet megírása óta a Propeller Tool fejlődött és képes használni a magyar ékezetes betűket is, csak engedélyezni kell az unicode-ot.
(#) kameleon2 hozzászólása Jan 28, 2015 /
 
Legközelebb belecsapunk a lecsóba. Elsőként leírom azt, amit minden kezdő programozó elől elhallgatnak - és amivel a legtöbbet lehet szívni: Hogyan lehet 0-ból 1-be pöckölni egy bitet. Azaz, hogyan gyújtsunk világosságot egy LED segítségével. A Propeller kimenetei 3,3V-on maximum 40mA-ig terhelhetőek a katalógus szerint. Azaz egy led-et gond nélkül ráaggathatunk, hogy teszteljük. Nem állítom, hogy mindent tanári alapossággal fogok tudni tálalni - de igyekszem segíteni annak - aki igényli. A példaprogramok spin kiterjesztésű fájlok lesznek, mivel ez a propeller natív nyelve.
(#) kameleon2 hozzászólása Dec 3, 2015 /
 
Ember tervez.... De addig is a net segítségével - találtam ezt az oldalt Itt gyönyörűen látható, miért is egyszerű ezt a mikrokontrollert használni. Ennél kisebb, egyszerűbb panelt én sem építettem, csak furatraszteres panelre. Ott is a foglalat alá került az eeprom helytakarékosságból. Ez viszont egy komplett koncepció - méghozzá nem is rossz.
(#) kameleon2 válasza kameleon2 hozzászólására (») Dec 3, 2015 /
 
Sikerült végre leülnöm 2 percre, így mellékelném is mindjárt az első világot jelentő kódot a "Hello World!" után:
  1. {Led villogtató alap program V1.0}
  2. ''
  3. '' *******************************************************************************************
  4. '' *  http://kameleonsystem.hu  zoltan.topa@gmail.com                                        *
  5. '' *******************************************************************************************
  6. ''
  7. '' Kapcsolási rajz a programhoz
  8. ''     P8x32 bekötése
  9. ''       ┌─────────┐
  10. ''       │      P0 ├──────────┐     Port 0 , A programban a pin változó megadásánál csak 0
  11. ''       │      P1 ├              │     Port 1 ...
  12. ''       │      P2 ├                   ...
  13. ''       │      P3 ├              0V
  14. ''       │      P4 ├
  15. ''       │      P5 ├
  16. ''       │      P6 ├
  17. ''       │      P7 ├
  18. ''       │      P8 ├
  19. ''       │      P9 ├
  20. ''       │      P10├
  21. ''       │      P11├                                                
  22. ''       │      P12├
  23. ''       │      P13├
  24. ''       │      P14├
  25. ''       │      P15├
  26. ''       │  µC  P16├
  27. ''       │      P17├
  28. ''       │      P18├
  29. ''       │      P19├
  30. ''       │      P20├
  31. ''       │      P21├
  32. ''       │      P22├
  33. ''       │      P23├
  34. ''       │      P24├
  35. ''       │      P25├
  36. ''       │      P26├
  37. ''       │      P27├
  38. ''       │      P28├
  39. ''       │      P29├
  40. ''       │      P30├
  41. ''       │      P31├
  42. ''       └─────────┘
  43. ''
  44. '' *******************************************************************************************
  45. '' *  Megjegyzések és rajz vége                                                              *
  46. '' *******************************************************************************************
  47.  
  48. con                             'Órajel és globális változók megadása
  49.  _clkmode = xtal1 + pll16x     'Standard órajel * kristály frekuencia = 80 MHz
  50.   _xinfreq = 5_000_000          '5MHz-es kristálynál igaz
  51.  
  52.  S_001 = 80_000_000            '80Mhz - böl származtatott secundum (másodperc) gyakorlatilag az órajelek száma 1sec alatt pont 80.000000
  53.   MS_001 = 80_000               '80Mhz - böl származtatott 1millisecundum
  54.  uS_001 = 80                   '80Mhz - böl származtatott 1mikrosecundum
  55.  
  56.  
  57. pub start                       ' Helyi rutin bármi lehet és a neve felhasználható függvényként is
  58.  led                           ' A következö helyi rutin hívása
  59.  
  60. pub led | t, pin                ' Helyi rutin "led" néven t : idözités helyi változója,  pin : portlab megnevezese amin a led van
  61.                              
  62.  pin := 0                      ' portláb megadása Itt éppen 0-ás port, de bármelyik lehet a 32-böl
  63.   dira[pin] := 1                ' Az 1-el megadjuk, hogy az adott portláb kimenet legyen. Bemenetként 0 lenne.
  64.  t := cnt                      ' t (azaz time) változó Ezzel építjük be az idözítésbe a rendszer órajel számlálóját
  65.  
  66.  repeat                         ' Ismétlés azaz ciklus. Itt paraméter nélkül, azaz folyamatos, végtelen ciklusként ismétlünk
  67.   outa[pin] := 1               ' A kimeneti láb értéke legyen egyenlö 1-el - led aktív
  68.    waitcnt(t += (S_001))        ' Várakozás a megadott ideig - itt éppen 1 másodperc van beállítva, ennyi ideig világít
  69.   outa[pin] := 0               ' A kimeneti láb értéke legyen egyenlö 0-val - led inaktív
  70.    waitcnt(t += (S_001))        ' Várakozás a megadott ideig - itt éppen 1 másodperc van beállítva, ennyi ideig nem világít


Mivel nem igazán van felkészítve a HE erre a karakterkészletre, mellékelem a spin kódot is

led_alap.spin
    
(#) kameleon2 hozzászólása Dec 3, 2015 /
 
A led villogtató program 5MHz-es kristályt feltételez, külső eeprom nélkül is működik , de nyilván a tápfeszültség elvételekor elfelejti a mikrokontroller. 24c256 vagy 24c512 eeprom használatával a program a külső eepromban is eltárolódik és minden bekapcsoláskor azonnal működni kezd. Sok sikert!
(#) kameleon2 hozzászólása Dec 3, 2015 /
 
Látható volt, egy átlag program felépítése. Globális változók, helyi változók. A mikrokontrollerre töltéskor megadható, hogy kizárólag RAM-ba legyen letárolva a program, vagy a külső eeprom tárolóba. Belinkeltem előzőleg a legegyszerűbb hardvert. Ez áll általában a
1.) A P8x32-ből azaz a propellerből,
2.) valamint az 5MHz-es kvarcból,
3.)és egy 3,3V-os tápfeszültségből.
4.) reset gomb
5.) Opcionálisan i2c-s eeprom
6.) programozáskor vagy PropPlug RS232-USB programozó, vagy Ugyanez a panalre téve, mint a fejlesztőpaneleken (Jellemzően FT232 és egy tranzisztor a reset körrel)
Azaz nem túllihegett a hardver.
(#) kameleon2 hozzászólása Dec 3, 2015 /
 
A villogtató szoftver persze sokkal egyszerűbben, más módszerekkel is megvalósítható. Most erre is teszek fel 1-2 példát. Egyben látható, hogy a kvarc sem feltétlenül szükséges a működéshez, hiszen létezik RCSLOW mód is, ilyenkor megközelítőleg 13-33kHz az órajel, illetve RCFAST mód, amikor 8-20MHz közötti órajellel működik a mikrokontroller. Sok egyszerű feladat elvégzéséhez - ez is elegendő. Van persze minimális túlhajtási lehetőség, amikor 96 MHz az elérhető sebesség 6,25MHz-es kvarccal. A kvarc nélküli órajel a hőmérséklet függvénye, illetve túlhajtáskor is - figyelni kell a hőmérséklet befolyásoló hatására.
  1. {Led villogtató alap program V2.0}
  2. '' itt nem állitjuk be a kvarcot - azaz belso orajelet hasznal a vezerlo
  3. CON
  4.   _clkmode = RCSLOW
  5.  
  6. pub led                         ' Helyi rutin
  7.                              
  8.  dira[0]~~                    ' Ugyanaz, mint a dira[pin] := 1 azaz a portláb kimenetként müködjön
  9.  
  10.  repeat                         ' Ismétlés azaz ciklus. Itt paraméter nélkül, azaz folyamatos, végtelen ciklusként ismétlünk
  11.   outa[0] := !outa[0]        ' A kimeneti láb értéke legyen önmaga inverzével azaz negálás, vagy más néven NOT müvelet
  12.    waitcnt(cnt + 20000)         ' Várakozás a megadott ideig - Az alap órajel (RCSLOW) ~20kHz (13 és 33kHz között) így 20000 órajel=1 sec, ennyi ideig világít, vagy nem világít
(#) kameleon2 hozzászólása Dec 3, 2015 /
 
Ugyanez RCFAST beállításával:
  1. {Led villogtató alap program V3.0}
  2. '' itt nem állitjuk be a kvarcot - azaz belso orajelet hasznal a vezerlo
  3. CON
  4.   _clkmode = RCFAST
  5.  
  6. pub led                         ' Helyi rutin
  7.                              
  8.  dira[0]~~                     ' Ugyanaz, mint a dira[pin] := 1 azaz a portláb kimenetként müködjön
  9.  
  10.  repeat                         ' Ismétlés azaz ciklus. Itt paraméter nélkül, azaz folyamatos, végtelen ciklusként ismétlünk
  11.   outa[0] := !outa[0]          ' A kimeneti láb értéke legyen önmaga inverzével azaz negálás, vagy más néven NOT müvelet
  12.    waitcnt(cnt + 12000000)      ' Várakozás a megadott ideig - Az alap órajel (RCFAST) ~12MhHz (8 és 20MHz között) így 12000000 órajel=1 sec, ennyi ideig világít, vagy nem világít
(#) kameleon2 hozzászólása Dec 3, 2015 /
 
Ami a lényeg, az most jön. Miért is jó igazán, pontosabban miben is jó igazán ez a mikrokontroller? A 8db32 bites magban. Íme egy teszt a párhuzamos futtatásra. 16..23 lábak a kimenetek, de átírható a szoftverben tetszőlegesen. Az output spin egy külső függvényként működik, ezt hívja meg a blinker2.spin főprogram. Hogy ez nem nagy szám? 80MHz-en már az. Hogy ez mire jó? Beszéljenek a számok és a képek: Fine-Grained Parallax Propeller based multi-chip SIMD Parallel Processor Szuperszámítógép mikrokontrollerekből.
(#) Hp41C hozzászólása Dec 3, 2015 / 1
 
Többmagos ARM3 rendszer egy csipen USB -vel, 512k 1M byte on chip FLASH programtárral néhány ezer forintért. Bővebben: Link
(#) GPeti1977 válasza Hp41C hozzászólására (») Dec 3, 2015 /
 
Ez van, senki nem használja a Propeller-t. Tényleg led-et villogtatni jó de egy bonyolultabb feladatot megcsinálni vele nem egyszerű, mármint nem az obex-ről letölteni.
Amiben verhetetlen az a videó és VGA kimenet, meg ha nagy frekvenciás órajel kell 128MHz ig, a spin nyelv is elég frappáns kár hogy a csúnya kapcsos zárójeles C-t nem váltja le, meg gyorsan lehet rátölteni a programot, nem egy több gigabájtos fordító kínozza a gépet lásd MPLABX.
A beígért propeller2 is már késik éveket.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 4, 2015 /
 
A Propeller 2 a felhasználóknak készül. A pótigények is belekerülnek. Nem gondolnám, hogy késik, ahogyan azt sem, hogy egy ARM lesz ilyen megbízható. Én úgy mondanám, kevés olyan feladatról tudok, amit ne tudnék a propellerrel megoldani. Mindenkit megtéveszt a 32kb memória. Pedig - rengeteg. Csak érteni kell a feltöltéséhez. Én persze értem, hogy mindenki kényelmes fejlesztőkörnyezeteket akar, de azoknak nagyon súlyos árai vannak. Fordítási hibák, folyamatos fordító frissítés, operációs rendszer frissítések, oprendszer kapcsolódó frissítései, szoftveres hibák tömkelege, archiválási gondok, reprodukciós problémák, vírusok, memóriazabáló szoftverek stb. Aki hardvert akar készíteni - maradjon a hardvernél. Ez az én véleményem. A csilivili maradjon meg a programozóknak és a menedzsereknek.
A hozzászólás módosítva: Dec 4, 2015
(#) Hp41C válasza kameleon2 hozzászólására (») Dec 4, 2015 1 /
 
Sajnos nem tudom másnak, csak késésnek értelmezni:
Idézet:
„The last time we provided a schedule update for Propeller 2 was in February, 2014. That schedule had us in the foundry this month with samples arriving by the end of October. Today it’s nearly October and we’re nowhere near being ready to submit any design files for fabrication!
The drawback of our transparency about an upcoming product is that all of us must be willing to accept the research and design cycle that accompanies a small company that decides to design its own chip. But we think the benefits are much bigger: early FPGA releases, the open source Propeller 1, and early details to design the Propeller 2 into your project before it is available. This is your chip as much as it is ours.
...
There is no date. This is taking longer than we thought. Our best estimate is that customers could hope for an FPGA image by Christmas.”
(#) Prendick válasza GPeti1977 hozzászólására (») Dec 4, 2015 /
 
Idézet:
„senki nem használja a Propeller-t”

Dehogynem. Egész remek dolgokat lehet összehozni vele egész könnyen. Például megmutatom a készülgető, nagyon kombinált laborműszerem kijelző és kezelő felületét. Nagyjából egy szatyornyi lcd kijelzőt takarítok meg vele és még az asztal túlsó végéről is olvasható.
Egy öreg monitor kellett csak hozzá, amit odatehetek a páka közelébe és nem kell féltenem, mint pl. egy laptopot a fröccsenő óntól. Kell még egy egér, amivel állítom az értékeket.

Ja, és kb. két óra munkám van benne eddig.

Kezel majd két-három adatvonalat, egy usb kapcsolatot vagy sd kártyát, még nem tudom. Lesz még olyan funkciója is, hogy egy-egy műszer kijelzését átváltja óriás számokra, ilyen vaksi felhasználóknak, mint én. Elég sok mikrovezérlővel dolgoztam már, de messze a legegyszerűbben ezzel lehet megcsinálni ilyesmit nagyon gyorsan és kompromisszumok nélkül.

Szóval nem rossz kis eszköz ez, csak meg kell érteni a filozófiáját.

DSCN1010.JPG
    
(#) kameleon2 válasza Prendick hozzászólására (») Dec 4, 2015 /
 
Jól néz ki - megérne egy cikket is. Azért nem elfelejtendő, hogy ezeket a hozzászólásokat kezdőknek igyekeztem címezni. Sok mikrokontrollerrel futottam össze és ez a szám csak gyarapodik. De nagyon kevés olyat tudok mondani, amihez ennyire kevés alkatrész és ilyen kicsi, kompakt szoftverkörnyezet tartozik és egyből használható. A Propeller és a Propellertool mint páros - jól sikerült konstrukció. Elsőre a Launhpad is nagyon vonzó volt, de olyan mennyiségű a kínálat, hogy amit ma beszerzek, holnap már nincs is. A demo fejlesztőpanelt is szinte azonnal lecserélték másik chipre. Amit én rendeltem az mást tartalmazott, mint amit a barátom. A gépemre feltelepített többszáz mega szoftverről inkább ne is beszéljek és arról sem, ha valamit komolyan akarok - vegyem meg a fizetős verziót... A propellertool ingyenes. Propeller - egy van, de teszi a dolgát. Nálam 5 éve vannak beépítve a házba. Nincs velük gond. Egyet sikerült csak ellőnöm tesztelés közben, mert 24V-véletlenül hozzáért a drótrengetegől az egyik lábhoz. De csak azt az egy portlábat nem tudom használni, a többi azóta is megy. Ha olcsóbb is lenne - talán nem kapna ennyi kritikát. A programozása zseniálisan egyszerű. Igen vannak szögletes zárójelek. Azonban amit az ember sűrűn használ - kiteheti külső függvényként. Utána akár egy a betű is megfelelhet egy sor programnak. Többé nem kell használni a zárójelet sem. Olyan mikrokontrollerről pedig eddig nem hallottam a propelleren kívül aminek a szoftverében a kapcsolási sémát is archiválni lehetne. Ez is hatalmas előny.
(#) kameleon2 hozzászólása Dec 4, 2015 /
 
(#) kameleon2 hozzászólása Jan 26, 2016 /
 
Sziasztok! Az ember tudatos lény, próbál tervezni. Ez nem mindig sikerül, mert az élet felülírja a teendőket. Ezért most egy TIL311-es kijelzőmeghajtására írt példaprogramot tennék közzé - szintén kezdő kategóriában. A program a ciklusnak megfelelően elszámol 0-tól F-ig, majd lekapcsolja a digitet. A második digitnél ugyanez a helyzet. Ha egyszerre kell használni a két kijelzőt, akkor nyilván 25Hz fölötti sebességgel kell váltogatni a kódokat és az engedélyeket, hogy folyamatos képet lássunk mindkét kijelzőn.
Mivel 32 IO áll rendelkezésre lehetséges a kijelzők párhuzamos meghajtása is. Akkor a BCD kódolást is kijelzőnként kell megcsinálni. Mivel 8 kijelzőt lehet ilyen módon párhuzamosan rákötni és 8 cog van a mikrokontrollerben, akár egy kijelzőt egy maghoz is köthetünk. Azaz párhuzamosan működhet mind a 8 kijelző, egymástól függetlenül. A közösített BCD vezetékekkel vezetéket lehet megspórolni. Ilyen módon lehetséges 8 kijelző meghajtása 32 helyett mindössze 12 vezetékkel. Így megmarad 20db IO láb, amit felhasználhatunk például DS hőmérők fogadására, vagy fordulat, esetleg feszültség mérésére. Mivel nagyon sok példaprogram elérhető az obex.parallax.comoldalról, könnyedén építhető ilyen módon akár 8 digites multiméter, vagy tekercselőgéphez fordulat számláló. A TIL311-es kijelzők előnye, hogy betűket is képes kijelezni. Régi bevált megoldásként C520D vagy A2020 IC-vel felépített panelméternél a feszültség értékeket számokkal, áram értékeket "A" betűvel lehetett egyszerűen megjeleníteni. A kapcsolás itt most nem tért ki a TIL 311 tizedespontjainak kapcsolására - azok további 1 lábat foglalhatnak le kijelzőnként.
  1. {2016 TIL311-es kijelzök meghajtása P8x32-röl}
  2.  
  3. ' **********************************************************************************************************
  4. ' *                  (c) 2016 http://www.kameleonsystem.hu | zoltan.topa@gmail.com                         *
  5. ' **********************************************************************************************************
  6. ' *                                                                                                        *
  7. ' *                             Bekötési vázlat P8X32 két db TIL311                                        *
  8. ' *                                                                                                        *
  9. ' **********************************************************************************************************
  10. '                        
  11. '
  12. '      +3,3V                   +5V           +5V   +5V           +5V
  13. '                                                             
  14. ' ┌──────┻──────┐               │ ┌─────────┐ │     │ ┌─────────┐ │
  15. ' │             │       BCD     └─┫1      14┣─┘ BCD └─┫1      14┣─┘
  16. ' │            1┣─────P0───0bit───┫3   •    ┣───0bit──┫3  •••   │
  17. ' │            2┣─────P1───1bit───┫2 • •    ┣───1bit──┫2 •   •  │
  18. ' │  PARALLAX  3┣─────P2───2bit───┫13  •    ┣───2bit──┫13    •  │
  19. ' │  PROPELLER 4├─────P3───3bit───┫12  •    ┣───3bit──┫12 •••   │
  20. ' │             │       CE    DIG1│    •    │         │  •      │
  21. ' │    P8X32   5┣─────P4 - D1─────┫8   •    │     DIG2│  •••••  │
  22. ' │            6┣─────P5 - D2─────┤  •••••  ├───D2────┫8        │
  23. ' │             │                 │         │         │         │
  24. ' │             │                 │        │         │        │
  25. ' │             │               5 │         │ 7     5 │         │7
  26. ' │             ┣─┐             ┌─┫  TIL311 ┣─┐     ┌─┫  TIL311 ┣─┐
  27. ' └─────────────┘ ┴             ┴ └─────────┘ ┴     ┴ └─────────┘ ┴
  28. '                GND           GND           GND   GND           GND
  29. '
  30. '
  31. '       A TIL311-es karakterei: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  32. '       A digitek kikapcsolásakor a kijelzö sötét (H szint!)
  33. '
  34. CON
  35.        _clkmode = xtal1 + pll16x                       'Standard clock mode * crystal frequency = 80 MHz
  36.         _xinfreq = 5_000_000
  37.        
  38.   digit1 = 4                                            ' Elsö digit bekapcsolo pin
  39.  digit2 = 5                                            ' Második digit bekapcsolo pin
  40.   onesec = 80_000_000                                   ' 80.000.000 ciklus, azaz 80 MHz-el számolva pontosan 1 mp
  41.  tizedsec = 8_000_000                                  ' 8.000.000 ciklus, pontosan 1/10 mp
  42.   otodsec = 16_000_000                                  ' 16.000.000 ciklus, pontosan 1/5 mp
  43.  negyedsec = 20_000_000                                ' 20.000.000 ciklus, pontosan 1/4 mp
  44.   harmadsec = 26_666_666                                ' 26.666.666 ciklus, pontosan 1/3 mp
  45.  felsec = 25_000_000                                   ' 25.000.000 ciklus, pontosan 1/2 mp
  46.  
  47. VAR
  48.   byte  on, off, valtozo, karakter                      ' on = digit bekapcsolasa; off = digit kikapcsolasa;
  49.                                                        ' valtozo = megjelenitendö érték; karakter = kakarkterkód tábla alapján
  50.   long time                                             ' time = változó, ami az idözités értéke 80_000_000 = onesec (1mp)
  51.  
  52. PUB rutin                                               ' Fö rutin
  53.  
  54.   DIRA[0..7]~~                                          ' 0-7 lábak kimenetek
  55.                                                        
  56.  off := 1                                              ' off = a digit kikapcsolása  = 1 azaz H szint
  57.   on := 0                                               ' on =  a digit bekapcsolása  = 0 azaz L szint  
  58.  time := felsec                                        ' idözités értékadása onesec = 1mp ; felsec = 0,5 mp
  59.  
  60. ' **********************************************************************************************************
  61. ' *                             Elsö digit kijelzése                                                       *
  62. ' **********************************************************************************************************
  63.  
  64.  valtozo := 0                                          ' A kijelzendö érték indulóértékének megadása
  65.                                                        
  66.   outa[digit1] := on                                    ' TIL311 1. digit bekapcsolása
  67.  
  68.  repeat 16                                             ' ismétlés 16x = Itt 0-15 -ig fogunk számolni
  69.    
  70.     display(valtozo)                                    ' BCD kódoló meghívása az aktuális számértékkel
  71.    waitcnt (cnt+time)                                  ' várakozás a megadott idözítés értékéig
  72.     valtozo := valtozo+1                                ' A számláló növelése 1-el
  73.                                                        
  74.  outa[digit1] := off                                   ' Kijelzö lekapcsolása
  75.  
  76. ' **********************************************************************************************************
  77. ' *                             Második digit kijelzése                                                    *
  78. ' **********************************************************************************************************
  79.  
  80.  valtozo := 0                                          ' A kijelzendö érték indulóértékének megadása
  81.  
  82.   outa[digit2] := on                                    ' TIL311 1. digit bekapcsolása
  83.  
  84.  repeat 16                                             ' ismétlés 16x = Itt 0-15 -ig fogunk számolni
  85.    
  86.     display(valtozo)                                    ' BCD kódoló meghívása az aktuális számértékkel
  87.    waitcnt (cnt+time)                                  ' várakozás a megadott idözítés értékéig
  88.     valtozo := valtozo+1                                ' A számláló növelése 1-el
  89.                                                        
  90.  outa[digit2] := off                                   ' Kijelzö lekapcsolása
  91.  
  92. PUB display(ertek)                                      ' BCD kódolás, itt azonosítjuk és írjuk ki a numerikus értéket kódolva
  93.                                                        ' a BCD kódvezetékre
  94.     case ertek
  95.       0:  karakter := zero
  96.       1:  karakter := one
  97.       2:  karakter := twoo
  98.       3:  karakter := three
  99.       4:  karakter := four
  100.       5:  karakter := five
  101.       6:  karakter := six
  102.       7:  karakter := seven
  103.       8:  karakter := eight
  104.       9:  karakter := nine
  105.       10: karakter := A
  106.       11: karakter := B
  107.       12: karakter := C
  108.       13: karakter := D
  109.       14: karakter := E
  110.       15: karakter := F
  111.    
  112.     OUTA[0..3] := karakter                              ' A P0,P1,P2,P3 lábak alkotják a BCD 4 vezetékét. Ide írjuk ki a kódot
  113.    waitcnt (cnt+time)                                  ' Várakozás az idözítésnek megfelelö ideig. Ennyi ideig látszik a karakter
  114.  
  115. DAT                                                     ' A karakterek BCD kódjai
  116. 'karakter     BCD kód                                     érték
  117. zero    byte  %0000                                     ' 0
  118. one     byte  %1000                                     ' 1
  119. twoo    byte  %0100                                     ' 2
  120. three   byte  %1100                                     ' 3
  121. four    byte  %0010                                     ' 4
  122. five    byte  %1010                                     ' 5
  123. six     byte  %0110                                     ' 6
  124. seven   byte  %1110                                     ' 7
  125. eight   byte  %0001                                     ' 8
  126. nine    byte  %1001                                     ' 9
  127. A       byte  %0101                                     ' A
  128. B       byte  %1101                                     ' B
  129. C       byte  %0011                                     ' C
  130. D       byte  %1011                                     ' D
  131. E       byte  %0111                                     ' E
  132. F       byte  %1111                                     ' F
(#) izenahogyishivnak hozzászólása Ápr 1, 2016 /
 
Sziasztok!

Sokféle eszközt programoztam már (PIC, Arduino-AVR, PC, stb), Parallaxot már néztem többször, de nem mélyültem el benne.

Teljesen kezdőként kérdezem, hogy ez valóban 8 db 32 bites processzort jelent, ami képes párhuzamosan dolgozni, tehát meg tudom azt csinálni, hogy külön feladatok futnak párhuzamosan, melyek akár az IO lábakat is külön vezérlik (nyilván nem ugyanazt a lábat) vagy valójában ugyanaz, mintha megírnám egy erősebb PIC-re a feladatot multitaszkosan, pl. 10ms ideig fut az egyik task, 10ms a másik, ... ? Lenne egy erős procit igénylő munkám, ahol 4-5 tasknak kellene valóban párhuzamosan futni, sok precíz időzítésre lenne szükségem, ezért gondoltam a P8x32-re. Nem tudom, hogy ez tényleg jobb-e ilyen feladatra, mint egy PIC szálakkal?
A hozzászólás módosítva: Ápr 1, 2016
(#) Prendick válasza izenahogyishivnak hozzászólására (») Ápr 2, 2016 /
 
Pontosan így működik. A nyolc mag önállóan fut, van saját memóriája, annyi a korlát, hogy a közös memóriához és pár belső eszközhöz minden nyolcadik ütemben fér hozzá.
(#) kameleon2 válasza izenahogyishivnak hozzászólására (») Ápr 2, 2016 /
 
Szia! Ha azt mondom 8 VGA monitort képes meghajtani egyszerre - elmondtam mindent? Igen a magok valóban önállóak, csak a perifériákhoz fér hozzá rotációsan. A legtöbb infót magyar nyelven itt találod meg. A Legnagyobb hátrányaként a 32k memóriát említik. Nekem egy webszerverem fut kevesebb mint 16k-ban. Érdemes megnézned ezt a demót is, mi fér 32k-ba:
(#) TheShaft válasza kameleon2 hozzászólására (») Ápr 6, 2016 /
 
Szia!
Sajnos nem vagyok egy Propeller szakértő, ezért fordulnék most hozzád egy kérdéssel.
Lehetséges-e megvalósítani ezzel a processzorral GSM és GPS modul kezelését? A GSM modultól érkező adatokból kellene kiszűrni a földrajzi koordinátákat, és továbbítani SMS formájában, vagy Google szerverre feltölteni (okostelefonon megjelenített térképen meg tudjam nézni, hol van a készülék). I2C buszos IO bővítőn keresztül 8-10 digitális bemenetet kellene figyelni, illetve 8 relés kimenetet kezelni. Mindezt autós környezetben (-40 ... +85C hőmérséklet).
(#) kameleon2 válasza TheShaft hozzászólására (») Ápr 6, 2016 /
 
Szia! Köszönöm a megtisztelő bizalmat - de szakértő én sem vagyok azért . Itt találsz némi infót,illetve Itt elég sok, mások által már megírt szoftvert.. Nekem van webszerver mintám, amit a propellerben futtatok. Azaz, ha egy szerverhez csatlakoztatod - akkor akár okostelefonnal, PC-vel vagy más TCP/IP alapú eszközről lekérdezheted az adataidat. A GSM-hez bár én nem értek, de AT parancsokkal vezérelhetőek tudtommal, így sima soros kommunikáció révén már lekezeli a propeller is. Nekem a padlástér a tesztkörnyezetem. -15 től 90 fokig kapott mindent a propeller. Hőmérséklet probléma nem volt vele. Autóban inkább a rázkódásra kell odafigyelni. De ha nem propeller kell feltétlenül, van kész megoldásom GSM-re és GPS-re. De ez már magánjellegű.
(#) kameleon2 válasza TheShaft hozzászólására (») Ápr 6, 2016 /
 
Időközben találtam egy ilyet is. Ez tartalmazza a propellert és a vevőt, valamint a külső antennát. Csak programozni kell.
(#) izenahogyishivnak hozzászólása Ápr 27, 2016 /
 
Próbálom megérteni a chip működését, az interpreter működése nem teljesen világos. Az interpreter a közös memóriában van, tehát ha Spin-ben írom a programot, a Cog-ba nem a Spin utasítás kerül, hanem a magas szintű Spin utasításnak megfelelő alacsony szintű assembly utasítások. Tehát minden egyes Spin utasítás végrehajtása előtt betöltődik az utasításnak megfelelő asm kód, de mivel ez a közös memóriából történik, ezért csak akkor történik ez meg, amikkor az aktuális Cog hozzáférhet a közös memóriához.

Ha valamit nem jól gondolok, javítsatok ki.
(#) izenahogyishivnak válasza izenahogyishivnak hozzászólására (») Ápr 27, 2016 /
 
Már látom, nem jól gondoltam a dolgot. Találtam egy részletesebb leírást.
(#) kameleon2 válasza izenahogyishivnak hozzászólására (») Ápr 28, 2016 /
 
Én meg sem próbáltam megérteni - csak használom... Amit én tudok a működéséről az annyi, hogy a chipnek 64k memóriája van összesen, amiből 32k az interpreter. Ha nem használsz külső memóriát akkor a feltöltött szoftvered addig működik, amíg van tápfesz. Induláskor megnézi, hogy van-e az RX TX lábon valami, vagy az i2c-ne külső memória. Ha van külső memória, akkor átemeli a 32k szabad memóriába a külső eeprom tartalmát és onnan már megint csak addig képes futni , amíg van tápfesz - vagy meg nem szakítja az RS232 csatlakoztatásakor egy reset. Mivel interpreter alapú, csak gyanítom, hogy valós időben fordít, ezért lehetséges a spin fájlok azonnali végrehajtása. Nyilván ezért is lassabbak a spin utasítások, mint a direkt assembly-k. Megfeledkezel amúgy a cog-ramról, hiszen van minden cognak saját memóriája is. Ez a jegyzet talán segíthet kicsit. Az ábrán szépen ki vannak rajzolva a magok, hogyan is néz ez ki.
(#) kameleon2 hozzászólása Dec 2, 2021 /
 
Van egy nagy kedvencem Propellerre. Ma már megmosolyogtató, de mégis valahol lenyűgöző. Igazán az a botrányos, amikor az ember rátölti a demoboardra, ráköt egy VGA monitort és egy multimédia hangszórót: Turbulence demo Parallax Propeller (1) mikrokontrollerre
Következő: »»   3 / 3
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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