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   1 / 3
(#) kameleon2 hozzászólása Okt 10, 2014 / 2
 
Sziasztok! Amiatt javasoltam ennek a témának a megnyitását, mert privátban nagyon sokan keresnek meg a kezdő kérdésekkel - így talán egyszerűbb, ha egyszer kell leírnom mindazt, ami szükséges lehet. A P8x32 a Parallax cég egyik mikrokontrollere. Elődjét a Basic Stampet talán sokan ismerik, Az SX sorozatot sokáig "A világ leggyorsabb mikrokontrollere" jelzővel illették. Ebből fejlődött ki a P8x32 vagy más néven a propeller mikrokontroller. Ez a uC tartalmaz belső óragenertátort, de 5 illetve 6.25MHz-es külső kvarccal is tökéletesen működik 80 illetve 96MHz-en. A legjellemzőbb az 5MHz-es kvarc 16x-os szorzóval (PLL16). ( önálló processzor magot tartalmaz. Minden feladatot - beleértve a kommunikációt is szoftverből lehet megvalósítani. 32 I/O lába van ami szabadon felhasználható. Nagyon minimális alkatrész mennyiségből azonnal működő áramkört lehet összeépíteni - mindezt a PIC, ATMEL, Texas mikrokontrollereknél megszokott nyűgök nélkül. A programozó szoftvere nagyon minimális, mindössze 6,5 MB. Létezik Linuxos verzió is, illetve gond nélkül működik MAC-ről is a programozása. Jelenleg egyféle létezik belőle, de már az idén várható a Propeller 2 bevezetése is. Rendkívüli módon a szoftverek, tutorialok ingyen hozzáférhetőek, illetve maga a propeller 2 fejlesztése is nyílt fórráskódú! Jelenlegi kialakítása belülről megegyező, de 3 féle tokban kapható (mellékelt képek).
Alap információk a chipről több helyről elérhetőek: Parallax - a gyártó honlapja.
Megírt nyílt forráskódú programok: OBEX.
VGA, PS2 billentyűzet, PS2 egér, I2c, SPI busz natívan használható rajta - szoftverből. Mivel 8db 32bites processzormag dolgozik benne - nehéz olyan feladatot találni, amivel ne boldogulna el. A mikrokontrollert kifejezetten automatizálási és retro számítógép emulációs projektekhez ajánlják. Ennek megfelelően sok feladat meg van írva az obexen: MODBUS (RS485), DMX512 vezérlés, MIDI IN-OUT, CNC vezérlő (komplett 4 tengelyes!), Sinclair ZX Spectrum, C64, AppleII emulátor, Z80 processzor emulátor, AY és SID hangchip emulátor stb.
Az említett oldalakon is sok infó található minderről, de szívesen válaszolok a már tesztelt - általam kipróbált megoldásokkal kapcsolatban is. Kuriózum és sokan rákérdeztetek, de natívan 8db VGA-t támogat egyidőben. Bár kicsi a saját - beépített memóriája, mindössze 32k, de a programozói nyelvének köszönhetően jelentősen kihasználható, tekintve, hogy interpreter alapú. megközelítőleg 10 programnyelven lehet programozni.
Nálam eddig egy közel 6 perces demo vitte el a pálmát - a mai napig nem értem, hogyan fért el benne: turbulence demo.
Sajnos a video nem a teljes demo-t tartalmazza. Néhány kedvcsináló: SID and VGA,
VGA demo,
HIVE egy propeller alapú mikroszámítógép demója,
Nixie csöves óra,
Szervo teszt, Hydra projekt,
Hexapod a hatlábú pók,
LCD-s video lejátszó, . Bővebb leírás, programnyelvek itt.
Remélem sok választ sikerült azonnal itt leírnom a kérdésekre, illetve szívesen válaszolok a továbbiakban a feltett kérdésekre is. Ezt a témát kifejezetten a kezdőknek hoztam létre, így kérem a profi kollégákat, ne itt kezdjük el a 8 magos szoftver részleteket kitárgyalni !
A hozzászólás módosítva: Okt 10, 2014
(#) Johnycorp hozzászólása Okt 10, 2014 /
 
Szia!

Jó a kezdeményezés.
Köszönöm.
A hozzászólás módosítva: Okt 10, 2014
(#) GPeti1977 válasza kameleon2 hozzászólására (») Okt 10, 2014 /
 
Már van ilyen topik: Bővebben: Parallax

Talán ami tetszik nekem benne a videó kimenet, de legalább egy 5 bites szürke skálát ha tudna de azt sem.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Okt 10, 2014 /
 
Szia ! Igen tudom, de sok olyan tapasztalat gyűlt fel, aminek e kezdők hasznát vehetnék és sokan bombáznak nap, mint nap az induláshoz szükséges kérdésekkel. Amiket a demóban láthattál, azok egyfajta színes módot tudnak, de kész programok. Senki nem mondta, hogy ne lehetne jobbat írni és publikálni. HI-res felbontásra is van példa, csak több láb kell hozzá 2-vel ha jól emlékszem. Ha ennél sokkal több kell - szerintem kb 1 hónap és jön a propeller2 96 I/O porttal. A teljes hardver fejlesztés nyílt forráskódú - talán egyedül a világon. Azaz - amit a megrendelők - azaz mi kértünk - igyekeztek belepaszírozni a chipbe. Beleértve a HDMI-t is....
(#) GPeti1977 válasza kameleon2 hozzászólására (») Okt 12, 2014 /
 
Kicsit többet írhatnál az újról.
(#) kameleon2 válasza Johnycorp hozzászólására (») Okt 12, 2014 /
 
Szia! Köszönöm. Nem tudom kinek, mennyire sikerült megnéznie az említett linkeket. Addig is megosztanék pár tapasztalatot. Nekem a leginkább szimpatikus az volt ebben a mikrokontrollerben (nem is tudom, hol kezdjem), hogy nagyon kevés alkatrész, minimális szoftver és néhány vezeték segítségével el lehet indulni. Az első saját panelemhez nem kellett más, mint egy furatraszteres paneldarab, amibe egy DIP40 és egy DIP 8 foglalatot forrasztottam. A DIP 40-be beletettem még egy foglalatot. Így a plusz magasság miatt amit nyertem, gyakorlatilag a DIP40 alapterületén belül elfért a 3,3V-os táp, a 24LC256 az I2C-s ellenállásokkal, a kvarc és a mikrokapcsoló. Mellé pedig a portlábak tüskéi. A programozást én a gyári Prop Plug-al oldottam meg, de azóta minden panelemre rátervezem az FT232RL-t is, így sima USB kábelről tudom programozni.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Okt 12, 2014 /
 
Szia! Amit a propeller 2-ről tudok: Tavaly év végén leveleztem a fejlesztőkkel. Karácsony tájékán már voltak kész teszt waferek. Azóta sok új kívánsággal éltek a felhasználók, amit igyekeztek a fejlesztők és a tesztelők is akceptálni. Utolsó információim szerint most év végén (december) már kapható lesz. Addig is néhány technikai adat: 108nm-es technológia, 16 processzormag (Cog), 128k ROM, 512kB RAM, 64 analóg I/O, 128bites belső HUB, 200MHz, 24bites színmélység kezelése, Képfelbontási lehetőségek: 1920x1080 @ 60Hz, 8bpp a 124MB / s, 1080p 8bpp , 16bpp, és 24bpp. Sajnos ennél több, már meglévő konkrétumot nem tudok - bár tudnék! Az eredeti kiírás 160MHz-ről indult, ma már 200MHz-nél járnak. 128kB RAM-ról indult a fejlesztés, most 512K az utolsó információm. Az biztos, hogy nagyon durva lesz a végeredmény, tekintve, hogy minket - felhasználókat is meghallgatnak végre. remélem nem fog eldurvulni emiatt az ára. Néhány kép..Maga a tokozás kialakítása, Egy minta video a Prop2-ről munka közben: 1024x768 felbontás, 16bit színmélység 16x16-os sprite-ok
(#) Hp41C válasza kameleon2 hozzászólására (») Okt 13, 2014 /
 
Idézet:
„Nekem a leginkább szimpatikus az volt ebben a mikrokontrollerben (nem is tudom, hol kezdjem), hogy nagyon kevés alkatrész,...”

Egy 16F887 egy ellenállással, két kondenzátorral és egy tápcsatlakozóval elindítható.
Propeller2: 128 lábból csak 4 darab Vcc és 4 darab GND egy 200MHz -es kontrolleren, azok is a lehető leghosszabb bekötésű pozíciókban... Debugging and Characterizing Ground Bounce Problems in High-Speed M...rdware
(#) kameleon2 válasza Hp41C hozzászólására (») Okt 13, 2014 /
 
Na éppen ezért indítottam el ezt a témát, hogy ne flameljünk állandóan. Kezdhetnénk a vitát és egymás mikrokontrollereinek lekicsinylését - de mi értelme? Úgyis mindenki a maga lovát dícséri. Ha annyira jó a 16f sorozat, Maradj nyugodtan annál. Mellesleg én a 16f sorozatú PIC-et és a Prop2-t nem merném egy kalap alá venni. Ez olyan, mintha egy Trabantot akarnál, egy Hummerrel összevetni tengelytávban. A Propeller egy interpreter alapú mikrokontroller, tehát más kategória.
(#) kameleon2 hozzászólása Okt 13, 2014 /
 
Szóval visszatérve a kezdőkre és még a hardverre... A legalapabb áramkör, amit külső, nem felejtő memóriával fel tudunk építeni és a prop plug hardverének rajza, hiszen Open source projekt lévén a rajzát is közzétette a parallax : A memóriachip i2c busz-kommunikációval csatlakozik a propellerhez. A képen látható memória a 0-ás címet viseli. Ezt a címet nyilván átállíthatjuk, hiszen hardveresen - a lábakkal van kódolva - de csak a 0-ás címen lévő memóriatartalmat tölti be a propeller az alap protokoll alapján. Ezért szerepel így a rajzon. A Prop Plug nem más, mint egy USB-RS232(TTL) konverter és egy reset áramkör. Ez nyilván más chipekkel is megvalósítható - de ez a legegyszerűbb (messze nem a legolcsóbb).
A hozzászólás módosítva: Okt 13, 2014
(#) Prendick hozzászólása Okt 13, 2014 /
 
Tényleg felesleges hasonlítgatni, más szegmenshez tartoznak. Például most egy olyan rendszeren dolgozom, miben lesz egy marék 16F és két propeller konzolnak és adatfeldolgozónak. Tiszta hülyeség lenne, ha egy pic-ből akarnék kifacsarni VGA meghajtást, de az is, ha propellert tennék bármelyik pic helyére.

Nem olyan régen fedeztem fel a propellert, tehát igazából teljesen kezdőnek számítok, de a fejemet ütögettem a falba, hogy már évekkel ezelőtt nem kutattam fel. Számomra a mikrokontrollerekkel végzett munka legnagyobb problémája mindig a kijelzés és az adatbevitel volt. Írtam anno pic-re olyan menüstruktúrákat assembly-ben, hogy pár évvel később csak néztem, hogy " Te jóisten, hogy is működik ez?!" Arra emlékszem, hogy rettenetes munka volt. Küzdöttem ledekkel, lcd-kel, nézegettem a nagyméretű, méregdrága grafikus kijelzőket, érdemes-e velük foglalkozni.

A propeller olyan volt, mint Zeusz villáma a fenekembe. Nem kell gombmátrix, nincs ledmultiplex, kétsoros bolhakijelző lcd, ötszámjegyű áras grafikus lcd, hanem lerángattam a padlásról az egyik régi monitoromat, hozzá egy billentyűzetet és egy egeret, aztán 1024*768-as felületen viháncolhatok.
Még nosztalgiáztam is, mert az egyik kész GUI tisztára olyan felületet ad, mint régen, amikor Clipperben írtam a dos-os progikat.

Mivel szövegeket és számokat kívánok megjeleníteni igen nagy számban és igen egyszerű beviteli szisztémával, a propeller óriási segítség. Nem nagyon izgat a színek kavalkádja (bár ahogy látom, azon is lehet bőven trükközni), mert pl. több tucat ledkijelző multiplexelését és paneltervét úszhatom meg pár ellenállással és egy VGA csatival. Öreg monitorom van még, különben is bagóért lehet kapni 15-17 collos lcd-ket, ha nincs hely a kövér crt-nek.
Szóval nagy megkönnyebbüléssel állok neki a melőnak.

Sajnos még csak tapogatózom, de egyszer biztosan meg fogok csinálni egy pofás GUI-t magamnak (anno a Clipperes programjaimban sem maradtam meg a hagyományos, fekete alapon zöld rondaságnál ), de jelenleg még nagyon kezdő vagyok.
Valószínüleg meg fogom kérni kameleon2 szaktársat, hogy fordítsa le nekem kínairól a vga.spin paramétereinek leírását ht-től vb-ig, mert töredelmesen beismerem, hogy Chip Gracey logikája nekem még a köd kategóriájába esik. Így meg csak mások programjaiból legózom még, ami elég kispálya.
Remélem nem tolnak ki velem a Parallaxnál és kettes mellett marad egy darabig az egyes is, legalább addig, amíg belejövök a mélységekbe. A kettes most így kezdésnek kissé súlyos lenne.

Lehet, hogy kicsit hülyén néz ki, hogy itt lelkendezem, de tényleg sokat segít a propeller a gondjaimon. És hát azt sem lehet mondani, hogy elfogult vagyok, mert ősidők óta pic-ezem. 6.20-as Mplab és vártuk, hogy nálunk is lehessen kapni 16F628-at. Na ez nem ma volt. Ez viszont nem csak azt jelenti, hogy egy vén szivar vagyok, hanem azt is, hogy a ring melletti ülőhelyről néztem végig a Microchip utóbbi évtizedét és nem keveset használom a termékeiket. Kissé zsákutcának tartom ugyan a 32 bites eszközeiket és keresem az alternatívákat, de ez csak magánvéleményem. A 16-os pic-ekért viszont rajongok, persze csak a maguk helyén.
Még azt se mondanám, hogy Trabant vs. Hummer a jó hasonlat ide, inkább a robogó vs autó a helyénvalóbb.
(#) Hp41C válasza kameleon2 hozzászólására (») Okt 13, 2014 /
 
Nem volt szándékomban senki lovát sem leszóli, csak azon derültem, amit kiragadtál a tulajdonságok közül... Hiába Hummer, ha csak az üzemanyag töltő nyílást emeled ki...
Azért figyeld meg:
- P8x32: 80MHz, 8 COG - Dip40 tokban 2 Vdd és 2 Vss lábbal, LQFP44 vagy QFN44 tokban 4 Vdd és 4 Vss láb. Mind a tok közepén. 32 I/O láb, max. 40mA/láb.
- Propeller 2: 200MHz, 16 COG - 128 lábú tok 4 Vdd és 4 Vss láb a tok sarkain. 90 -nél több I/O láb.
(#) kameleon2 válasza Prendick hozzászólására (») Okt 13, 2014 /
 
Köszönöm a hozzászólást - igen - megvan a maga helye minden eszköznek. A Parallax bőkezűségének köszönhetően ingyen hozzájutottam egy indulókészlethez, ami feleslegessé teszi a saját barkácsolást és mindjárt enged belecsapni a lecsóba: Propeller demo board. Talán nem árulok el nagy titkot - három napig nem aludtam. Közel 400 programot töltöttem le, próbáltam ki a demo boardon. Teljesen lenyűgözött. Főleg az, mennyire egyszerűen lehet felhasználni függvényként a már egyszer megírt programokat. Hogyan tudtam lamer létemre 1/2 óra alatt megírni az első 8cog-os szoftveremet a minták alapján. Mindenkinek az egyéni ízlésére bízom, melyik utat választja, utólag úgy látom sok bosszúságtól kímélnek meg a kész panelek - de sok tapasztalatot is veszíthet vele az ember. De nem vagyunk egyformák. Van aki a hardver építésében leli örömét, van aki a szoftverek elkészítésében és van aki mindkettőben.
(#) kameleon2 válasza Hp41C hozzászólására (») Okt 13, 2014 /
 
Igazad van - kiragadtam. Ahogyan kiragadhattam volna az 1,5kV-os humán izolációt is és sok egyéb paramétert. Ezek adottságok. Ha műszaki aggályaid vannak ezzel kapcsolatban - a fejlesztőket direkt módon el lehet érni és meg is teszik a szükséges változtatásokat. Bár én nem teljesen értem mit akarsz kihozni ebből - én egy egyszerű ember vagyok nem értek az utalásokból. Én használom ezt az eszközt - nem terveztem.
(#) GPeti1977 hozzászólása Okt 23, 2014 / 1
 
Készülget a digitális oszcilloszkóp P8X32 vel, két csatornás lesz, a propeller tudna 128MHz órajelet de a beszerezhető alkatrészek miatt csak 40Ms/s lesz a mintavételezési frekvenciája, sajnos még sok alkatrészt be kell szereznem van ami csak az ebay-en van szokás szerint ez egy asszinkron FIFO IC.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Okt 23, 2014 /
 
Szia! Ez a Propscope utánépítése, vagy saját megoldás? Amúgy ne csüggedj - lehet, hogy mire készen leszel - lehet már kapni a prop2-t is . Az magasabb órajellel fog ketyegni.
A hozzászólás módosítva: Okt 23, 2014
(#) dokidoki válasza GPeti1977 hozzászólására (») Okt 23, 2014 /
 
Szia. Remek, én szurkolok neked. Mert kinéztem a feladatra a chipet.
Építési folyamatban van nálam egy spektrum analizátor, ehhez van F876-al és egy 128x64pixelel kijelzővel egy szkóp melyet igaz félig megépítettem de lehet, hogy elvetem, mert igencsak satnya képet adna ebben a felbontásban. Illetve komoly hátralépés egy igazi szkóp képéhez képest.
De p8x32 -őt alkalmasnak látom a feladatra, akár vezérlési és többletinformáció megjelenítésére. Mint például frekvencia és jelszint megjelenítésre.. És továbbfejlesztve, zéró span mellett akár vevőkészülék is lehetne, vagy ami régi álmom, egy panoráma-vevőkészülék. Mindezt valójában analóg módon tudná is, csak digitális - egy-képernyőn való megjelenítés az igazán jó lenne.
Meg sem erőltetné talán a chipet, mert 2msec/DIV 0.5-1Volt/DIV külső Trigger forrás... Maradna benn erő másra is, mert a tároló - normalizáló funkció az külső videó AD/DA meg 256Kb Sram mívelné.
RF-hardver része már tesztüzemben jól működik, még a kisebb hiányosságok ellenére is.
Propelleres rész még csak fantáziámban létezik, mert igen kevés képzettséggel rendelkezek programozás területén, annak ellenére, hogy az összes mintapéldát végigpróbáltam már, de ennek már egy éve is van. Ezt a területet, sajnos képességek és idő okán kevéssé gyakorlom.
Szóval szurkolok.
(#) kameleon2 válasza dokidoki hozzászólására (») Okt 23, 2014 /
 
Itt azért fellelhető némi ismeretanyag: Obex, és Propscope. Ezen könnyű elindulni. Van még itt is némi háttérinfó.
A hozzászólás módosítva: Okt 23, 2014
(#) dokidoki válasza kameleon2 hozzászólására (») Okt 23, 2014 /
 
Logikai analizátort próbáltam, tetszett. A Propscope az kíváncsivá tesz, de kissé drága... Nem tudom, hogy mennyire publikus a belseje, illetve a szoftver... Majd megnézem közelebbről.
(#) kameleon2 válasza dokidoki hozzászólására (») Okt 23, 2014 /
 
Éppen ez a lényeg: publikus. Mind a hardver , mind pedig a szoftver. A általam linkelt oldalakról tudsz letölteni rajzot, szoftvert. Hozzá kell tennem - egyszerűbb megvenni, de ha szeretsz barkácsolni - hajrá!
(#) GPeti1977 válasza kameleon2 hozzászólására (») Okt 23, 2014 /
 
Nem de találtam egy alap tv szkóp spin-t azt kezdem kiegészíteni, az lassú és egy csatornás.
Ebben lesz AD konverter párhuzamos, meg IDT7201 FIFO,.
(#) kameleon2 válasza GPeti1977 hozzászólására (») Okt 23, 2014 /
 
Az is jó kezdet. Én is próbálgattam. Megy az VGA-n is, csak más függvényt kell alá behívni.
(#) dokidoki válasza kameleon2 hozzászólására (») Okt 23, 2014 /
 
Igen, közben látom, leszedtem hozzá mindent.
Bár a céljaimnak jobban megfelel egy valós szkóp, csak ebben a SA-projektben kellene, hogy ne legyek hozzákötve az igazihoz, hanem fusson az analizátor alkotórészeként, önálló kijelzővel.
Ez egyúttal kizárja a PC használatát. Tulajdonképp önálló megjelenítőt építenék majd hozzá, ami kiszolgálná a funkcionalitásait. Másképp fogalmazva kijelzőegységet építenék laptop lcd ill. VGA szerűt.
Nem fog kelleni sok extra, csak ami analizátor funkcióját - megjelenítését kezeli. De ez még a jővő projektje nálam.
(#) kameleon2 válasza dokidoki hozzászólására (») Okt 23, 2014 /
 
Én is PC nélkül javallottam a VGA-t. Ha kellene PC akkor ott a Viewport - például. Ha eleve VGA-ra írod - menni fog a laptop kijelzővel is remélhetőleg.
(#) dokidoki válasza kameleon2 hozzászólására (») Okt 23, 2014 /
 
Igen, így lesz. Van egy öreg laptop LCD-m, ami 8 vagy 12 biten párhuzamosan fogadja a vezérlést, az is lehet, hogy nem is színes. Még ez is megtenné, de szerintem ennek a megírása számomra esélytelen, főleg úgy, hogy szinte semmi infó nincs a kijelzőhöz. Esélyes lesz, egy VGA monitor, vagy lehet, hogy veszek egy LDVS vezélőt valamely bontott LCD-mhez.
(#) kameleon2 válasza dokidoki hozzászólására (») Okt 24, 2014 /
 
A PC Arénában 20db monitort adtak 20eFt-ért....
(#) dokidoki válasza kameleon2 hozzászólására (») Okt 24, 2014 /
 
Az áraikat nem látom, mert be kellene regelnem hozzá. Gondolom nem LCD-re vonatkozik... Mezei monitorom van, meg bontott LCD-k. Ebből kell majd építkeznem.
(#) kameleon2 válasza dokidoki hozzászólására (») Okt 24, 2014 /
 
De - LCD... A hibátlanok is 10-12eFt-ért mennek én vettem Eizo Flexscan monitort náluk 6000-ért. (lcd).
A hozzászólás módosítva: Okt 24, 2014
(#) kameleon2 hozzászólása Okt 24, 2014 /
 
Mire is alkalmas a Propeller? A fejlesztők kifejezetten otthon automatizálásra és retro számítógép emulációra szánták. Én nehezen találok olyan feladatot, amit ne lehetne vele könnyedén megoldani. Most éppen egy 2,4-es touchscreenes LCD előtt ülök -és igyekszem fizikailag összekötni. Más feladat a panelterven kívül nem is nagyon van, mivel a drivert már készen kaptam az Obexről . Ez nekem egy délutáni szeánsz, pedig életemben nem írtam touchscreenes drivert. Ha az alapok működnek, látom hol kapom meg a touch felületről az X, Y kordinátákat és hogyan tudom a grafikákat kitenni - jöhetnek a feladatok, amikor tényleg csak a feladatra kell koncentrálnom. Hirtelen két dolog jutott eszembe. Egy Touchos hőmérő (mert éppen van itthon kínai hőmérséklet frekvencia átalakítós szondám), és egy intelligens épület taszter, ami touchos. Neki is ugrom, hogy legalább a rajzok meglegyenek. Ha megvagyok, nekifeszülök egy dallamgenerátornak. AZon buzdultam fel, hogy sikerült két régen halottnak hitt Z80-as dallamcsengőbe életet lehelnem. Azzal sem kell sokat bíbelődnöm, hogy összeálljon, csak kitalálnom, hogy wav, vagy MIDI alapú legyen. A MIDI-t már összeraktam egyszer tesztből SD kártyáról MIDI 0 Formátumot lejátszik. Van SD mentes változat is bár ott a 32k valóban korlát. Igaz egy kapucsengőhöz az is bőven elég. Mivel A "seven" szoftver szintén letölthető, akár kánonban - énekelve is mehet a csengő. De ha valaki jobban szereti a beszédhangot - én már kipróbáltam a text to speak modult is. Akár helyi hanglejtéssel és szavakkal elmondja a szükséges üzenetet. Női, férfi vagy gyerekhangon. Mindezt beszédszintézissel - amivel kell kicsit egerészni, mire az ember behangolja, de kis helyen elfér - akár a 32k-ban is.
(#) GPeti1977 hozzászólása Nov 8, 2014 /
 
Olyan gondom lenne hogy szeretnék a TV re is rajzolni meg SD kártyára is menteni, ez nem pont az oszcilloszkóp de hasonló, az OBEX oldalról töltöttem le a SD-MMC_FATEngine.spin mely az sd kártyát kezeli , működik is de ha már ezt az Objektumot unkommentelem a videókimeneten nincs semmi jel.

Itt a félkész program:
  1. CON     ''General Propeller settings
  2.  
  3.   _CLKMODE = XTAL1 + PLL16X
  4.   _XINFREQ = 5_000_000
  5.  
  6.    cpin= 9
  7.    dpin= 8
  8.    spin= 10
  9.  
  10.   _dopin = 6
  11.   _clkpin = 4
  12.   _dipin = 5
  13.   _cspin = 7
  14.   _cdpin = -1 ' -1 if unused.
  15.  _wppin = -1 ' -1 if unused.
  16.  
  17.   _rtcres1 = -1 ' -1 always.
  18.  _rtcres2 = -1 ' -1 always.  
  19.   _rtcres3 = -1 ' -1 always.  
  20.  
  21.  _statuspin = 23
  22.  
  23. CON     'Required for TV
  24.  
  25.   x_tiles = 16
  26.   y_tiles = 12
  27.  
  28.   paramcount = 14      
  29.   bitmap_base = $2000
  30.   display_base = $5000
  31.  
  32.  
  33. VAR     'Required for TV
  34.  
  35.  long  tv_status     '0/1/2 = off/visible/invisible           read-only
  36.   long  tv_enable     '0/? = off/on                            write-only
  37.  long  tv_pins       '%ppmmm = pins                           write-only
  38.   long  tv_mode       '%ccinp = chroma,interlace,ntsc/pal,swap write-only
  39.  long  tv_screen     'pointer to screen (words)               write-only
  40.   long  tv_colors     'pointer to colors (longs)               write-only              
  41.  long  tv_hc         'horizontal cells                        write-only
  42.   long  tv_vc         'vertical cells                          write-only
  43.  long  tv_hx         'horizontal cell expansion               write-only
  44.   long  tv_vx         'vertical cell expansion                 write-only
  45.  long  tv_ho         'horizontal offset                       write-only
  46.   long  tv_vo         'vertical offset                         write-only
  47.  long  tv_broadcast  'broadcast frequency (Hz)                write-only
  48.   long  tv_auralcog   'aural fm cog                            write-only
  49.  
  50.  word  screen[x_tiles * y_tiles]
  51.  long  colors[64]
  52.  
  53. DAT     'Required for TV
  54. tvparams      long    0,1,%001_0101,%0000,0,0,x_tiles,y_tiles,10,1,0,0,0,0
  55.  
  56. OBJ    
  57.   'fat0: "SD-MMC_FATEngine.spin"  
  58.  tv            : "tv"
  59.  gr            : "Graphics"
  60.  adc            :"MCP3208"
  61.  
  62. VAR    
  63. word    ADCsamples0
  64.  
  65. PUB TV_ | errorString  
  66.  
  67.  adc.start(dpin,cpin,spin,255)
  68. 'DIRA[23]~~ 'led
  69.  StartTV
  70.      
  71.  'fat0.fatEngineStart( _dopin, _clkpin, _dipin, _cspin, _wppin, _cdpin, _rtcres1, _rtcres2, _rtcres3) {
  72.                     '}
  73.  'statusLED(4) ' Make the status LED blink quickly.
  74.  'errorString := \profiler ' Returns the address of the error string or null.
  75.  
  76.    'if(fat0.partitionMounted)
  77.       '\fat0.unmountPartition
  78.  
  79.    'if(errorString)
  80.      ' statusLED(1) ' Blink the LED if an error occurs.
  81.     'else
  82.      'statusLED(-1) ' Light the LED if no error occurred.
  83.  
  84.  'waitcnt(clkfreq + cnt)
  85.   'fat0.fatEngineStop  
  86.  
  87.                    
  88.    repeat
  89.      
  90.      gr.clear                                          'Clear display bitmap
  91.       DisplayTEXTHeader
  92.       DisplayReferenceLines
  93.       DisplayScopeData
  94.       'OUTA[23]~~  
  95.      waitcnt(80_000_000 / 10 + cnt)
  96.      'OUTA[23]~
  97.       'gr.copy(display_base)                             'Copy bitmap to display
  98.  
  99. PUB DisplayTEXTHeader      
  100.     'gr.color(1)                                      
  101.    'gr.textmode(2, 2, 6, %%10)
  102.     'gr.text(0, 70, string("TV") )
  103.  
  104. PUB DisplayScopeData|i,x0,y0, x1, y1
  105.    gr.color(3) 'white
  106.     repeat i from 0 to 255
  107.       waitcnt(80_000_000 / 50 + cnt)
  108.       gr.copy(display_base)
  109.       if i <> 0
  110.         gr.line(x0+1,y0)
  111.        
  112.       x0:=i-127
  113.       x1:=i-127
  114.        ADCsamples0:=adc.average(0,2)
  115.        y0:=(ADCsamples0-2048 )
  116.        
  117.        
  118.       if y0 < -90
  119.         y0:= -90
  120.  
  121.       if y0> 90
  122.        y0:= 90          
  123.       if i == 0
  124.          gr.plot(x0,y0)
  125.            
  126.       else
  127.          
  128.          gr.line(x0,y0)
  129.          
  130. PUB DisplayReferenceLines | i, j
  131.      gr.color(3)
  132.      repeat j from -12 to 12
  133.        repeat i  from -8 to  8
  134.                      
  135.          gr.plot(j*10,i*10)                                  
  136.          gr.line(j*10,i*10)
  137.  
  138. PUB StartTV|i,dx,dy
  139.     'start tv
  140.    longmove(@tv_status, @tvparams, paramcount)
  141.    tv_screen := @screen
  142.    tv_colors := @colors
  143.    tv.start(@tv_status)
  144.    'init colors
  145.     repeat i from 0 to 63
  146.       colors[i] := $07_6C_6D_2B
  147.    'init tile screen
  148.    repeat dx from 0 to tv_hc - 1
  149.      repeat dy from 0 to tv_vc - 1
  150.        screen[dy * tv_hc + dx] := display_base >> 6 + dy + dx * tv_vc + ((dy & $3F) << 10)
  151.   'start and setup graphics
  152.     gr.start
  153.     gr.setup(16, 12, 128, 96, bitmap_base)
  154.    
  155.  {{
  156. PRI statusLED(frequency) | buffer, counter ' Configure the status LED.
  157.  
  158.  ' Frequency must be between 0 and (clkfreq / 2). Otherwise output is always 1.
  159.  
  160.   buffer := ((0 < frequency) and (frequency =< (clkfreq >> 1)))
  161.  
  162.   outa[_statuspin] := (not(buffer))
  163.   ctra := (buffer & constant((%00100 << 26) + _statuspin))
  164.   dira[_statuspin] := true
  165.  
  166.   counter := 1
  167.   repeat 32 ' Preform (((frequency << 32) / clkfreq) + 1)
  168.  
  169.    frequency <<= 1
  170.    counter <-= 1
  171.    if(frequency => clkfreq)
  172.      frequency -= clkfreq
  173.      counter += 1
  174.  
  175.  frqa := (buffer & counter) ' Output is always 0 if frequency is 0.
  176.  
  177. PRI profiler | errorString, errorNumber' buffer, counter, data[128] ' Separate method to trap aborts.
  178.  
  179.   fat0.mountPartition(0)
  180.  
  181.   errorString := \fat0.newFile(string("Profile.txt"))
  182.   errorNumber :=  fat0.partitionError ' Returns zero if no error occurred.
  183.  
  184.  if(errorNumber) ' Try to handle the "entry_already_exist" error.
  185.     if(errorNumber == fat0#Entry_Already_Exist)
  186.  
  187.       ' Re-create the file.
  188.      fat0.deleteEntry(string("Profile.txt"))
  189.      fat0.newFile(string("Profile.txt"))
  190.  
  191.    else
  192.      abort errorString ' Unable to handle the error. Continue passing the error.
  193.  
  194.   fat0.openFile(string("Profile.txt"), "W")
  195.  
  196.   fat0.writeString(string("### SD Card Profile ###", 13, 10, 13, 10))
  197.   fat0.writeString(string("Disk Signature: "))
  198.   printHexadecimal(fat0.partitionDiskSignature)
  199.  
  200.   fat0.writeString(string(13, 10, 13, 10, "Partition 0 - "))
  201.   printHexadecimal(fat0.partitionVolumeIdentification)
  202.   fat0.writeString(string(13, 10))
  203.  
  204.   fat0.writeString(fat0.partitionVolumeLabel)
  205.   fat0.writeByte(" ")
  206.   fat0.writeString(fat0.partitionFileSystemType)
  207.   fat0.writeString(string(13, 10, 13, 10))
  208.  
  209.   printDecimal(fat0.partitionBytesPerSector)
  210.   fat0.writeString(string(" - Bytes Per Sector", 13, 10))
  211.   printDecimal(fat0.partitionSectorsPerCluster)
  212.   fat0.writeString(string(" - Sectors Per Cluster", 13, 10))
  213.   printDecimal(fat0.partitionDataSectors)
  214.   fat0.writeString(string(" - Total Sectors", 13, 10))
  215.   printDecimal(fat0.partitionCountOfClusters)
  216.   fat0.writeString(string(" - Total Clusters", 13, 10))
  217.   printDecimal(fat0.partitionUsedSectorCount("F"))
  218.   fat0.writeString(string(" - Used Sectors", 13, 10))
  219.   printDecimal(fat0.partitionFreeSectorCount("F"))
  220.   fat0.writeString(string(" - Free Sectors", 13, 10, 13, 10))
  221.  
  222.  
  223.  
  224.   fat0.unmountPartition
  225.   'fat1.unmountPartition
  226.  
  227. PRI printDecimal(integer) | temp[3] ' Writes a decimal string.
  228.  
  229.   if(integer < 0) ' Print sign.
  230.    fat0.writeByte("-")
  231.  
  232.  byte[@temp][10] := 0
  233.  repeat result from 9 to 0 ' Convert number.
  234.     byte[@temp][result] := ((||(integer // 10)) + "0")
  235.     integer /= 10
  236.  
  237.   result := @temp ' Skip past leading zeros.
  238.  repeat while((byte[result] == "0") and (byte[result + 1]))
  239.    result += 1
  240.  
  241.  fat0.writeString(result~) ' Print number.
  242.  
  243. PRI printHexadecimal(integer) ' Writes a hexadecimal string.
  244.  
  245.  fat0.writeString(string("0x")) ' Write header.
  246.  
  247.   repeat 8 ' Print number.
  248.    integer <-= 4
  249.    fat0.writeByte(lookupz((integer & $F): "0".."9", "A".."F"))
  250.    }}
Következő: »»   1 / 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