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   2 / 3
(#) kameleon2 hozzászólása Nov 27, 2014 /
 
Sziasztok! Most lőttem ezt a kis kedvcsináló -t. Időközben haladgatok az XPT2046 és ILI9325 Touchscreen LCD párossal. A kijelző szépen működik a minta touch program még valahol megakadt, szerintem még a penirq játszik velem hardveresen, de érzem magamban az erőt! Főleg a másik video -nak köszönhetően!
(#) GPeti1977 válasza GPeti1977 hozzászólására (») Dec 15, 2014 /
 
Sajnos szét kell bombáznom úgy néz ki a Parallax DSO-mat mert rájöttem hogy nem fejleszthető tovább.
Töltsük be a Graphics_Demo spin-t és az első képen látható demó ábrát kapjuk, a programban van egy ilyen sor:
_stack = ($3000 + $3000 + 100) >> 2 'accomodate display memory and stack

Növeljük meg a program méretét, legegyszerűbb ha létrehozunk egy tömböt mindegy:
long test1[224]
A _stack túllépés még nem figyelmeztet de a bal felső sarokban már kezd a kép szétesni 2. kép
long test1[230] felett már kommentelni kell a _stack sort mert figyelmeztet a túllépésre,
de ekkor már videójel sincsen a kimeneten.
Hiába van látszólag 6000long szabad területem de az lefoglalódik a képernyőre írás miatt, sajnos a mikrokontrollerek assemmbler részét nem vágom.

A szkóp panel eleje maradna mert jó lett zajra, is csak kérdés mit használjak a Propeller helyett?
Vehetek TFT kijelzőt és PIC32 vagy valamivel újra írhatom az egész programot, bár a legtöbb kijelzőhöz írt driver állítólag elég lassú de ezt magam is tapasztaltam, a Microchip P32 GUI Dev Board elég gyors lenne a DMA és külső RAM támogatással de 60000Ft ért már egy komplett szkópot lehet kapni, meg beáshatom magam az MPLAB rejtelmeibe, és ennél a panelnál alig maradt szabad kivezetés.
Esetleg Rasberry Pi.
Vagy megvárom a Parallax2 -t igaz itt a HDMI felbontás miatt már érdemesebb lenne az A/D átalakítót 10 bitesre cserélni.
Esetleg mint a Hydra játékok is azért mennek mert külső memória bővítés van hozzájuk toldva, úgyhogy a problémán Chip Gracy sem tud segíteni.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 15, 2014 /
 
Szia! Nem értem miért nem eleve külső memóriával próbálkozol. A 32k eléggé egzakt méret. Csodákat nem lehet benne tenni - annak ellenére, azért sok mindent igen. Pedig az Assembly lenne a korrekt megoldás, mert ezek eléggé időkritikus folyamatok. Esetleg - ha tényleg letettél a Propellerről - mert valamilyen falba ütköztél - nem hibáztatlak, van elég platform, amivel lehet kínlódni. De nehezen tudom elképzelni, hogy egy ekkora sebességű és teljesítményű chippel meggyűljön a bajod. Valami a rendszer felépítésében van ami hibádzik.
(#) GPeti1977 válasza kameleon2 hozzászólására (») Dec 15, 2014 /
 
Van külső memóriám 2x512byte, de ennek tartalmát át kell másolnom a parallaxba hogy tudjak vele számolni, mivel a probléma már ekkor előjött ezért választottam ilen kicsit, igazából egy jobbfajta dso memória mélysége 2x2048byte kezdődik, talán amivel meg tudnám csinálni az a pic32 mpide -vel felprogramozva, DS1077 programozható oszcillátorral, semmi gond csak ekkor elveszik az egésznek az értelme, az olcsó nagy kijelző ről sajnos le kell mondani, ezt rá tudtam kötni a nagy lcd tv-re is.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 15, 2014 /
 
2x512byte is karcsúnak tűnik. Mekkora képpel, milyen színmélységben szeretnél dolgozni?
(#) GPeti1977 válasza kameleon2 hozzászólására (») Dec 15, 2014 /
 
A felbontás a demonál azt hiszem 192x256. De nem tehetünk semmit mert hiába van 32kbyte hely a _stack = 24kbyte amit lefoglal a kijelzõ, ami miatt marad a 32k ből 8k ami ide karcsú, ahová még egy fullos kis programot kell elhelyezni meg minél több beolvasott adatot elhelyezni , ami sajnos fizikai képtelenség.
A hozzászólás módosítva: Dec 15, 2014
(#) dokidoki válasza GPeti1977 hozzászólására (») Dec 15, 2014 /
 
Szia,
Ha nem megy egy chipen a megoldás, akkor kettővel, a nagyok sem szégyenlik a több procit erre.
Egyik digitalizálna, írna egy jobb sramot, a másik meg csak a megjelenítéssel, meg amit még elbír...
De én nem értek hozzá, így csak ötlet.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 15, 2014 /
 
Amit írsz 192x256 bit = 49152 Az 6144 Byte Azaz 6kB. A 32k RAM-ba ez nem fér el nyolcszor és még a többi programrészletről nem beszéltünk és nincs színmélység. Mindenképpen más megoldás kell. Ilyenkor segíthet az előfeldolgozás és az interpoláció, valamint a palettakódok használata. Lehet persze jócskán trükközni az idővel is, hiszen egy ekkora képet neked mozgókép esetén kell másodpercenként 24x megjelenítened. De Tömörítheted is a tartalmat a feldolgozás közben. Tehát van tartalék is bőven. Nem feltétlenül az a megoldás, hogy a mért értéket azonnal megjeleníted. Ha az előfeldolgozás ledobja a sok sallangot - elég lehet a kis ram is. D ez csak az én véleményem. Csak azért sántít nekem valami, mert egy Z80-as procival és kis segítséggel (ULA) is lehetett ennyi felbontással 8 színt kezelni a 80-as években, akkor nem tudom elképzelni, hogy egy 20x gyorsabb 8 magos procival ne lehetne, ami eleve tartalmazza a video megjelenítéshez szükséges támogatást. PTP és PTP2 projektek szoftvereit, video lejátszóját nem nézted át? Persze tudom assembly nélkül nehéz. Ebben pedig Chip Gracy kellene, hogy tudjon segíteni. Nekem is sokat segített. Érdemes nem csak az OBEX-en körülnézni. Meglepően jó projekteket találtam én is. Ráadásul neked - bár a konkrét feladatot nem tudom - de lehetséges, hogy mindössze egy függőleges sort kellene tárolnod - ami változik. A többi mehetne egy pufferből is.
(#) GPeti1977 hozzászólása Dec 22, 2014 / 4
 
Sikerült egy nagyon érdekes dolgot készíteni a P8X32A mikrovezérlővel, egy WVGA TFT modult sikerült életre kelteni melynek ilyen interfac-e van, azt hiszem minden TFT-nek ilyen van:

TFT Parallel Interface
Designation Description Function
DCLK, CK
Data Sampling Clock
Control line
Data Sampling Clock Signal
HSync
Horiz Sync signal
Control line - Horizontal Sync Signal (negative going)
VSync
Vertical Sync Signal
Control line - Vertical Sync Signal (negative going)
R0
Red Data Signal
Data Lines
R1
Red Data Signal
R2
Red Data Signal
R3
Red Data Signal
R4
Red Data Signal
R5
Red Data Signal
GND
Ground
Ground lines are placed between various signal lines for isolation. Only 3 shown as examples
G0
Green Data Signal
Data Lines
G1
Green Data Signal
G2
Green Data Signal
G3
Green Data Signal
G4
Green Data Signal
G5
Green Data Signal
GND
Ground
B0
Blue Data Signal
Data Lines
B1
Blue Data Signal
B2
Blue Data Signal
B3
Blue Data Signal
B4
Blue Data Signal
B5
Blue Data Signal
GND
Ground
ENAB
Enable
Control line - Horizontal Display Position Set Signal
H: Enables LCD
R/L
Option may not be present
Right or Left Scan
Chip Specific - tied to VCC or GND
U/D
Option may not be present
Up or Down Scan
ChipSpecific - tied to VCC or GND
V/Q
Option may not be present
VGA or QVGA
Chip Specific - tied to VCC or GND

Azaz 6, vagy 8 bites RGB bemenet, Hsync, Vsync, és pixelclock jelek kellenek neki, természetesen itt a legfelső 2 bit van csak kihasználva, a pixel clock-ot a "Synth" spin segítségével állítottam elő de ezt biztos megoldható frappánsbban is, a kijelzőn még van egy rezisztív touch panel is.
Itt a módosított demo és a néhány pontban átírt vga_text.spin:

Demo:
  1. CON
  2.  
  3.   _clkmode = xtal1 + pll16x
  4.   _xinfreq = 5_000_000
  5.  
  6.  
  7. OBJ
  8.  
  9.   text : "vga_text_parallel"
  10.  
  11.    Freq          : "Synth"
  12. PUB start | i ,vga_rate_F
  13.    vga_rate_F:= 20000000
  14.    DIRA[0]~~
  15.     Freq.Synth("A",0, vga_rate_F )  
  16.   'start term
  17.  text.start(16)
  18.  text.str(string(13,"   VGA Text Demo...",13,13,$C,5," WVGA 800x480 Parallel LCD      ",$C,1))
  19.  repeat 14
  20.    text.out(" ")
  21.  repeat i from $0E to $FF
  22.    text.out(i)
  23.  text.str(string($C,6,"     Uses internal ROM font     ",$C,2))
  24.  repeat
  25.    text.str(string($A,12,$B,14))
  26.    text.hex(i++, 8)


A vga_text.spin-t átírtam hogya kép jó legyen vga_text_parallel néven:
  1. CON
  2.  
  3.   cols = 32
  4.   rows = 15
  5.  
  6.   screensize = cols * rows
  7.   lastrow = screensize - cols
  8.  
  9.   vga_count = 21
  10.  
  11.  
  12. VAR
  13.  
  14.   long  col, row, color, flag
  15.  
  16.   word  screen[screensize]
  17.   long  colors[8 * 2]
  18.  
  19.   long  vga_status    '0/1/2 = off/visible/invisible      read-only   (21 longs)
  20.  long  vga_enable    '0/non-0 = off/on                   write-only
  21.   long  vga_pins      '%pppttt = pins                     write-only
  22.  long  vga_mode      '%tihv = tile,interlace,hpol,vpol   write-only
  23.   long  vga_screen    'pointer to screen (words)          write-only
  24.  long  vga_colors    'pointer to colors (longs)          write-only            
  25.   long  vga_ht        'horizontal tiles                   write-only
  26.  long  vga_vt        'vertical tiles                     write-only
  27.   long  vga_hx        'horizontal tile expansion          write-only
  28.  long  vga_vx        'vertical tile expansion            write-only
  29.   long  vga_ho        'horizontal offset                  write-only
  30.  long  vga_vo        'vertical offset                    write-only
  31.   long  vga_hd        'horizontal display ticks           write-only
  32.  long  vga_hf        'horizontal front porch ticks       write-only
  33.   long  vga_hs        'horizontal sync ticks              write-only
  34.  long  vga_hb        'horizontal back porch ticks        write-only
  35.   long  vga_vd        'vertical display lines             write-only
  36.  long  vga_vf        'vertical front porch lines         write-only
  37.   long  vga_vs        'vertical sync lines                write-only
  38.  long  vga_vb        'vertical back porch lines          write-only
  39.   long  vga_rate      'tick rate (Hz)                     write-only
  40.  
  41.  
  42. OBJ
  43.  
  44.  vga : "vga"
  45.  
  46.  
  47. PUB start(basepin) : okay
  48.  
  49. '' Start terminal - starts a cog
  50. '' returns false if no cog available
  51. ''
  52. '' requires at least 80MHz system clock
  53.  
  54.  setcolors(@palette)
  55.  out(0)
  56.  
  57.  longmove(@vga_status, @vga_params, vga_count)
  58.  vga_pins := basepin | %000_111
  59.  vga_screen := @screen
  60.  vga_colors := @colors
  61.  'vga_rate := clkfreq >> 2
  62.  
  63.   okay := vga.start(@vga_status)
  64.  
  65.  
  66. PUB stop
  67.  
  68. '' Stop terminal - frees a cog
  69.  
  70.   vga.stop
  71.  
  72.  
  73. PUB str(stringptr)
  74.  
  75. '' Print a zero-terminated string
  76.  
  77.   repeat strsize(stringptr)
  78.     out(byte[stringptr++])
  79.  
  80.  
  81. PUB dec(value) | i
  82.  
  83. '' Print a decimal number
  84.  
  85.   if value < 0
  86.     -value
  87.     out("-")
  88.  
  89.   i := 1_000_000_000
  90.  
  91.   repeat 10
  92.     if value => i
  93.       out(value / i + "0")
  94.       value //= i
  95.       result~~
  96.     elseif result or i == 1
  97.       out("0")
  98.     i /= 10
  99.  
  100.  
  101. PUB hex(value, digits)
  102.  
  103. '' Print a hexadecimal number
  104.  
  105.   value <<= (8 - digits) << 2
  106.   repeat digits
  107.     out(lookupz((value <-= 4) & $F : "0".."9", "A".."F"))
  108.  
  109.  
  110. PUB bin(value, digits)
  111.  
  112. '' Print a binary number
  113.  
  114.   value <<= 32 - digits
  115.   repeat digits
  116.     out((value <-= 1) & 1 + "0")
  117.  
  118.  
  119. PUB out(c) | i, k
  120.  
  121. '' Output a character
  122. ''
  123. ''     $00 = clear screen
  124. ''     $01 = home
  125. ''     $08 = backspace
  126. ''     $09 = tab (8 spaces per)
  127. ''     $0A = set X position (X follows)
  128. ''     $0B = set Y position (Y follows)
  129. ''     $0C = set color (color follows)
  130. ''     $0D = return
  131. ''  others = printable characters
  132.  
  133.   case flag
  134.     $00: case c
  135.            $00: wordfill(@screen, $220, screensize)
  136.                 col := row := 0
  137.            $01: col := row := 0
  138.            $08: if col
  139.                   col--
  140.            $09: repeat
  141.                   print(" ")
  142.                 while col & 7
  143.            $0A..$0C: flag := c
  144.                      return
  145.            $0D: newline
  146.            other: print(c)
  147.     $0A: col := c // cols
  148.     $0B: row := c // rows
  149.     $0C: color := c & 7
  150.   flag := 0
  151.  
  152.  
  153. PUB setcolors(colorptr) | i, fore, back
  154.  
  155. '' Override default color palette
  156. '' colorptr must point to a list of up to 8 colors
  157. '' arranged as follows (where r, g, b are 0..3):
  158. ''
  159. ''               fore   back
  160. ''               ------------
  161. '' palette  byte %%rgb, %%rgb     'color 0
  162. ''          byte %%rgb, %%rgb     'color 1
  163. ''          byte %%rgb, %%rgb     'color 2
  164. ''          ...
  165.  
  166.  repeat i from 0 to 7
  167.    fore := byte[colorptr][i << 1] << 2
  168.    back := byte[colorptr][i << 1 + 1] << 2
  169.    colors[i << 1]     := fore << 24 + back << 16 + fore << 8 + back
  170.    colors[i << 1 + 1] := fore << 24 + fore << 16 + back << 8 + back
  171.  
  172.  
  173. PRI print(c)
  174.  
  175.  screen[row * cols + col] := (color << 1 + c & 1) << 10 + $200 + c & $FE
  176.  if ++col == cols
  177.    newline
  178.  
  179.  
  180. PRI newline | i
  181.  
  182.  col := 0
  183.  if ++row == rows
  184.    row--
  185.    wordmove(@screen, @screen[cols], lastrow)   'scroll lines
  186.     wordfill(@screen[lastrow], $220, cols)      'clear new line
  187.  
  188.  
  189. DAT
  190.  
  191. vga_params              long    0               'status
  192.                         long    1               'enable
  193.                        long    0               'pins
  194.                         long    %1000           'mode
  195.                        long    0               'videobase
  196.                         long    0               'colorbase
  197.                        long    cols            'hc
  198.                         long    rows            'vc
  199.                        long    1               'hx
  200.                         long    1               'vx
  201.                        long    0               'ho
  202.                         long    0               'vo
  203.                        long    800             'hd
  204.                         long    10              'hf
  205.                        long    162              'hs
  206.                         long    43              'hb
  207.                        long    480             'vd
  208.                         long    11              'vf
  209.                        long    2               'vs
  210.                         long    31              'vb
  211.                        long    20000000               'rate
  212. ''  vga_ht
  213. ''  horizontal number of pixel tiles - must be at least 1
  214. ''  vga_vt
  215. ''
  216. ''    vertical number of pixel tiles - must be at least 1
  217. ''  ______
  218. ''  vga_hx
  219. ''
  220. ''    horizontal tile expansion factor - must be at least 1
  221. ''
  222. ''    make sure 16 * vga_ht * vga_hx + ||vga_ho is equal to or at least 16 less than vga_hd
  223. ''  ______
  224. ''  vga_vx
  225. ''
  226. ''    vertical tile expansion factor - must be at least 1
  227. ''
  228. ''    make sure <tileheight> * vga_vt * vga_vx + ||vga_vo does not exceed vga_vd
  229. ''      (for interlace, use <tileheight> / 2 * vga_vt * vga_vx + ||vga_vo)
  230. ''  ______
  231. ''  vga_ho
  232. ''
  233. ''    horizontal offset in ticks - pos/neg value (0 recommended)
  234. ''    shifts the display right/left
  235. ''  ______
  236. ''  vga_vo
  237. ''
  238. ''    vertical offset in lines - pos/neg value (0 recommended)
  239. ''    shifts the display up/down
  240. ''  ______
  241. ''  vga_hd
  242. ''
  243. ''    horizontal display ticks
  244. ''  ______
  245. ''  vga_hf
  246. ''
  247. ''    horizontal front porch ticks
  248. ''  ______
  249. ''  vga_hs
  250. ''
  251. ''    horizontal sync ticks
  252. ''  ______
  253. ''  vga_hb
  254. ''
  255. ''    horizontal back porch ticks
  256. ''  ______
  257. ''  vga_vd
  258. ''
  259. ''    vertical display lines
  260. ''  ______
  261. ''  vga_vf
  262. ''
  263. ''    vertical front porch lines
  264. ''  ______
  265. ''  vga_vs
  266. ''
  267. ''    vertical sync lines
  268. ''  ______
  269. ''  vga_vb
  270. ''
  271. ''    vertical back porch lines
  272. ''  ________
  273. ''  vga_rate
  274. ''
  275. ''    tick rate in Hz
  276. ''
  277. ''    driver will limit value to be within 500KHz and 128MHz
  278. ''    pixel rate (vga_rate / vga_hx) should be no more than CLKFREQ / 4
  279.  
  280.  
  281.                         '        fore   back
  282.                        '         RGB    RGB
  283. palette                 byte    %%333, %%001    '0    white / dark blue
  284.                        byte    %%330, %%110    '1   yellow / brown
  285.                         byte    %%202, %%000    '2  magenta / black
  286.                        byte    %%111, %%333    '3     grey / white
  287.                         byte    %%033, %%011    '4     cyan / dark cyan
  288.                        byte    %%020, %%232    '5    green / gray-green
  289.                         byte    %%100, %%311    '6      red / pink
  290.                        byte    %%033, %%003    '7     cyan / blue
A hozzászólás módosítva: Dec 22, 2014

wvga.jpg
    
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 22, 2014 /
 
Szia! Gratulálok a megoldáshoz.
(#) GPeti1977 hozzászólása Dec 31, 2014 / 3
 
Valaki ha nosztalgiát érez a régi '80 as 90-es évek számítógépes játékaihoz akkor a Parallax csippel újra játszhat pár játékot, vagy tanulásképpen megérteni a játék programokat, de annak nehéz dolga lesz.
Itt megvásárolható egy demo board: Bővebben: Hydra

Ugyanitt megvásárolható egy hasonló board is.
a DVD letöltésével hozzáférünk a játékok forráskódjaihoz: Bővebben: DVD

A C3synapse DVD Ver 1.zip kell letölteni.

Eddig minden szépé jó csakhogy a Hydra demo panel több mint 40000Ft; ez egyszerűbben is megoldható, eddig 3 játékot át tudtam írni úgy hogy minimális alkatrész igénnyel és 8 gomb segítségével (nem kell a NES gamepad sem) megy a játék.

Ha van érdeklődő a következő hozzászólásban felteszem a kapcsolási rajzot meg a 3 játék spin kódjait.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 31, 2014 /
 
Szia! A repülős nekem is ment, de sajnos csak kompozit video-val. Mivel a műhelyemben VGA a standard a TV-hez meg a család miatt nem férek hozzá - nem bíbelődtem vele többet. A repülős ment PS2 billentyűzetről is. De érdekel a megoldásod, mert több szem .. Főként az Xracer - bár gyanítom neked is a kompozit kimenetről megy.
(#) GPeti1977 válasza kameleon2 hozzászólására (») Dec 31, 2014 /
 
Végül is ha van kéznél 10Mhz kristály meg CD4021 ic akkor nem kell módositani semmit, az ebay en van párszáz forintért NES game pad, természetesen ezek a játékok mind kompozit vieojelet adnak.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Dec 31, 2014 /
 
Idézet:
„Végül is ha van kéznél 10Mhz kristály meg CD4021 ic”
Ezt kifejtenéd bővebben? Mert nem minden transzparens azért számomra sem abból amit írtál.
(#) GPeti1977 válasza kameleon2 hozzászólására (») Jan 1, 2015 /
 
Nézd meg a hydra demo panelt meg a nintendo nes játékvezérlő kapcsolási rajzait, akkor összeáll a kép.
Érdemes ellesni a megoldást, 1 vagy 2 CD4021 ic, 3 vagy 4 port segitségével 8 vagy 16 bemenet olvasható be, találtam spin és asm megoldásokat meg olyant is ami külön cog ban fut, P8X32A kevés portja van.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Jan 1, 2015 /
 
Az az igazság, mostanában nem volt annyi időm a propellerre, amennyi kellett volna. Éppen napelemeket szerelünk kint a fagyban (-8-15 fokban). Régebben nézegettem, de ennek neki kell ülni. A CD4021-hez milyen soros szoftvert használsz? Valamilyen obexes, vagy saját?
(#) GPeti1977 válasza kameleon2 hozzászólására (») Jan 1, 2015 /
 
Nem, ez az ic a joystick-ban van.
(#) GPeti1977 hozzászólása Jan 8, 2015 /
 
A propeller2 mikor készül már el? Csak azért kérdezem mert ha belátható időn belül akkor megvárom, a digit szkóp miatt kérdezem mert bár sikerül kettő P1 összehozni de az már nem az igazi.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Jan 8, 2015 /
 
Sziasztok! Tavaly Karácsonyra ígérték utoljára, de valamiért elhúzódott a dolog. Itt megtalálod a legutolsó információkat, sajnos ez még szeptember - októberi állapot. Kicsit részletesebben a projektről itt.
A hozzászólás módosítva: Jan 8, 2015
(#) kameleon2 hozzászólása Jan 26, 2015 / 1
 
Sziasztok!
Mivel kezdő P8x32 a téma - kicsit szégyellem, hogy így belecsaptunk a lecsóba. Úgy is fogalmazhatnék, hogy adós maradtam pár dologgal a valóban kezdőknek.
Sokan kérdezik: "Miért éppen a Propeller mikrokontroller?" Igyekszem kicsit megvilágítani. Egy nagy fejlesztés elején fel sem merült, miben gondolkodjak, hiszen a PIC kézenfekvő megoldásnak tűnt. Azonban... evés közben jön meg az étvágy és okosodik az ember. Egyre nőttek a funkciók, egyre több láb, egyre változatosabb be és kimenetek kellettek (volna). Azonban a hardvernél is akadtak gondok. Majd később a szoftver első változatai elkészültek assemblyben - amit nem én írtam. Meg is lett a következménye - amikor a barátom a megírt szoftverrel együtt eltűnt. 3 év munka a kukában landolt, mert megvolt ugyan a kapcsolási rajz és a pic típusa - de a szoftver nélkül.... Nos elkezdtem keresgélni. Vajon melyik mikrokontrollerrel tudok hatékonyabban dolgozni? Melyikhez mit kell bevásárolnom, hogy használhassam egyáltalán? PIC, ATMEGA, Texas stb? Ekkor hívta fel nekem is egy ismerős a figyelmemet a Parallax cég mikrokontrollereire. "SX a világ leggyorsabb mikrovezérlője." Hmmm- ez érdekes cikk - gondoltam ráolvasok. Aztán 2006-tól elindult a Propeller, azaz a p8x32. Mitől is olyan különleges ez a mikrokontroller? Nézzük csak: 8db önálló processzormag, 80MHz rendszer órajel, 32 bit, és egy pirinyó memória: 32kB. Mindez DIP40-es tokban is. Lássuk, mi kell az élesztéséhez: RS232, soros eeprom(opcionális), kvarc(opcionális), 3.3V tápfeszültség, reset gomb. Szoftveresen ha elakadok, ki segíthet? Elsőként ott van a szakirodalom, valamint az OBEX. Mi is ez az utóbbi? A Parallax által fentartott weboldal, ahol a már megírt, publikált szoftverekből lehet mazsolázgatni. Elősként gyors áttekintésként ennyi. Az első panelemet nem én építettem, megvásároltam készen. Első nap kb 400 programot nyálaztam át a segítségével: VGA low-res, hi-res megjelenítések, Audio be és kimenet, digitális be és kimenetek, kommunikációs protokollok, játékok.... Csak kapkodtam a fejem. Ami azonban megfogott azonnal: Nincs szükség több tízezer forintos fejlesztőpanelekre, méregdrága fejlesztő szoftverekre az induláshoz - és a későbbi fejlesztésekhez sem. Elegendő a mikrokontroller és egy led, valamint a szoftver letöltéséhez szükséges - mindössze kb 6MB-os pogram és letöltőkábel (lehet saját is). (folyt.)
A hozzászólás módosítva: Jan 26, 2015
(#) snapscan válasza kameleon2 hozzászólására (») Jan 26, 2015 /
 
Nem vita indítónak, mert én is többször kacsingattam felé, de végül nem tudott meggyőzni. Szépen hangzik, de addig gyors ez a uC, amíg a COG-ok tudnak külön dolgozni, és a közös memórián max. adatot cserélnek. De a COG memória nagyon-nagyon kevés. Ha meg egy program nem tud lefutni a COG-ban a mérete miatt, akkor közösből kell tölteni, interpretert feltölteni, ami nem elég, hogy eleve lassít az egészen, még a közösből olvassa a interpretálandót is.. az a COG igen silányan fog teljesíteni. A gyártó meg nem túl kommunikatív, pont a fontos részletek nem lettek kibontva hosszú évek óta a doksikban, a gyors fejlesztés oda, mert a példaprogramokból kell tapasztalati úton tanulni.. Semmi előnyét nem látom egy nagy, gyors 8 biteshez (mondjuk egy megaAVR) képest. 32 bit? És? Árban meg elég merészet mertek álmodni. És a munkád nem védhető le, az lopja el, aki akarja.. Vannak benne nagyon jó megoldások, asmi miatt időnként képbe került, és ha nem ilyen apró COG memória lenne benne, bizony nagyon ütős lenne, talán még használnám is, de így.. Oké, lehet leszedni kész obex fájlokat, aztán még össze is lehet legózni őket, csak ez nem fejlesztés.
(#) kameleon2 válasza snapscan hozzászólására (») Jan 26, 2015 /
 
Nem is vitatkozom. Nyilván vannak tapasztalataid. Én sikeresen fejlesztek rá, mert van pár debug eszközöm. Megvásároltam végül a Viewportot is - de mint kiderült egyáltalán nem kellett volna, mert a legjobb debug eszköz egy másik propeller, valamint a soros port. Gears-t ismered? C-ben miért ne lehetne fejleszteni? A cog memória valóban kicsinek tűnik, de kérdés, mire akarod használni? Nekem a webszerverhez is elegendő 16k. Csilivilihez meg ott a külső, gyors memória.
(#) snapscan válasza kameleon2 hozzászólására (») Jan 27, 2015 /
 
Gearst nem ismertem, de hasznosnak néz ki. C-ben is lehet fejleszteni, de nem a nyelv a lényeg (bár az interpretert hanyagolnám), hanem a uC felépítésének a sajátosságai. Ami okosan ki van ugyan találva, de a csöppnyi cog memória üti az egészet. Mindenesetre, ha a prop2 valaha elkészül és kapnak a cog-ok elég saját memóriát, én leszek az első, aki ráveti magát. Ennek a uC-nek viszont nem fogok nekiállni, ezt béta verziónak tekintem.
(#) kameleon2 válasza snapscan hozzászólására (») Jan 27, 2015 /
 
Csak - ha már felhoztad... Milyen feladatra nem elég egy interpreter alapú chipnél 32k memória? Rengeteg alkalmazás van, ami nevetve elfér ennél kisebb helyen is. Van valami konkrét feladat - amihez kevés volt? Pusztán csak érdekelne, mert sokan ezzel bombáznak, hogy kevés a 32k, de senkit nem tudok, aki megpróbálta volna teleírni - rajtam kívül, akinek nem sikerült eddig, pedig 2010 óta azon vagyok.
A hozzászólás módosítva: Jan 27, 2015
(#) snapscan válasza kameleon2 hozzászólására (») Jan 27, 2015 /
 
Nem, nem a 32K közös a baj. A cogok saját, "demo méretű" memóriája a baj. Ezt a uC-t akkor lehetne durván kihasználni, ha a cogokba önállóan futó programokat írhatnék, a közös területet pedig csak adat tárolásra, illetve egymás közötti adatcserére használnám. Tehát ha tartozik hozzá annyi memória, hogy egy feladat (asm-ben) elvégezhető egy maggal. Ekkor van értelme 8 magnak. Ehhez viszont kevés a saját memóriájuk, ezt anno próbáltam sok éve.. Az interpretálós része soha nem is érdekelt. A közösből interpretálni olyan luxus, hogy elveszti a uC a felépítéséből eredő hatékonyságát, és ezért nincs is szükség rá. De mindez magán vélemény, nem szeretném, ha azt hinnéd, hogy pusztán vaktölténnyel durrogtatok egy olyan ellen,m aki gyakorlatban is használja.
(#) kameleon2 válasza snapscan hozzászólására (») Jan 27, 2015 /
 
Nézőpont kérdése. A közös memória előnyösebb, mert minden cog hozzáfér és nem kell mozgatni az adatokat. A méret - nos igen. Igazándiból egy hátrányát láttam eddig. Mivel a mikrokontrollert eleve 8 bites gépek emulációjára tervezték - gond, hogy lapozgatni kell. Igaz mások ezt is megoldották, külső - párhuzamos buszos memóriával. De ez jóval alacsonyabb sebesség. Azért kérdeztem konkrétumra, mert eddig még senki nem jelezte, hogy neki kevés lett valamiért a 32k. Ezzel én be is fejeztem a memória kitárgyalását, mert annyi jó tulajdonsága van a mikrokontrollernek - ami többet érdemel.
(#) GPeti1977 válasza kameleon2 hozzászólására (») Jan 27, 2015 /
 
Nem kell messzire menni én vagyok akinek kevés lett a 32k memória, tulajdonképpen nem a program memória kevés nagyon sokmindenre elég, hanem ha VGA grafikát használsz a lefoglalt stack miatt elveszik sok hely. Pont az egyetlen előnyét a videó, VGA jel generálásának képességét nem lehet kihasználni, ami a többi általánosan ismert kontrollernek nincs meg; a propeller2 már a propeller1 kiadása után tervbe lett véve.
(#) snapscan válasza kameleon2 hozzászólására (») Jan 28, 2015 /
 
Nagyon elbeszélünk egymás mellett.
(#) snapscan válasza (Felhasználó 15355) hozzászólására (») Jan 28, 2015 /
 
Kameleon2 bejegyzésére reagáltam, mert nem feltétlen értek vele egyet. Nem "csinálok" semmi extrát, beszélgetünk a propellerről. A kezdők figyelmét fel kell hívni az esetleges kellemetlenségekre is! Miért baj ez? Mindegy, lépek a topicból, használja mindenki sikerrel, aki ezt a vezérlőt használja!
A hozzászólás módosítva: Jan 28, 2015
Következő: »»   2 / 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