MATLAB multitrådning, EASY (1 / 1 steg)

Steg 1: kod



behöver du matlab och en vanlig textredigerare: Använd antingen anteckningar som medföljer windows (Sök efter notepad.exe) eller använda matlab m fil editor (fil-ny-mfile). Den här arbetat med matlab 6.5 (R13) och med matlab 7 (R14) men jag har problem med det med matlab r2007a.

1) Ladda ner koden och wav filen bifogas detta steg (Kod och Wav File.rar), det är en komprimerad fil, du behöver winzip eller winrar för att packa upp den. Obs: eftersom instructables är lite efterbliven denna fil kommer att ladda ner som något liknande FLSKW9EFHIK6H6V.tmp, så du måste byta namn på den till something.rar (irriterande, men inte mitt fel).
2) spara båda dessa (kod och wav-fil) i katalogen matlab "arbete" (gör saker lättare)
3) öppna matlab
4) skriver i mex mythreadprog.cpp
4.5) OBS: om detta är första gången du använder mex kompilatorn i matlab, skriver mex-setup innan steg 4 för att välja den kompilator som du vill använda.
5) när jag gör detta på min matlab jag få en "befalla lina varning", men det påverka inte någonting
6) typ i hullo = 1, denna initieras en variabel används av mex-fil (om du inte gör detta matlab kommer krascha)
7) att köra mex arkivet skriva på maskin i mythreadprog

8) på matlab prompten visas Val #
där # är värdet av hullo, du kommer också att höra wav-fil spela 7 gånger, är tiden mellan varje uppspelning av wav-fil (1 sekund * hullo), så när du hör ljudet som spelas kan du ändra värdet för hullo (hullo = 5, hull = 3, etc) och du kan höra mex tråden med hänsyn till detta (det kommer att finnas olika långa pauser när du ändrar hullo värdet i matlab)
Observera att matlab returnerar kontroll att du omedelbart även om tråden är fortfarande igång i bakgrunden.

9) om du vill att tråden att skriva ut de förändrade värdena vid matlab: s prompten du kan ta bort kommentar _both_ av linjer märkt //---for testning--- i koden

Obs: om du bara avkommentera mexPrintf i tråden och inte sova i mexFunction matlab kommer att krascha. Detta beror på att du ska skicka en callback till matlab efter att mexFunction avslutats. Om du vill ha tråden skicka information tillbaka till matlab efter mexFunction har slutat är det mer compicated (aka. Jag vet inte hur, slå upp det på google).

#include < windows.h >
#include < stdlib.h >
#include < string.h >
#include < stdio.h >
#include < conio.h >
#include < process.h > //used för tråd
#include "mex.h"
#include < mmsystem.h > //used för ljud
#pragma kommentar (lib, "winmm.lib") //used för ljud

void cdecl MyThread(LPVOID pVoid);

//######################################################
###--huvudsakliga mex funktion--###
//######################################################
void mexFunction (int nlhs, mxArray * plhs,
int nrhs, mxArray *prhs[])
{
int ThreadNr; behövs för tråden

starta din tråd
_beginthread (MyThread, 0, & ThreadNr);

---för att testa---
Sleep(20000); kommer att göra funktionen mex bo runt i 20 sekunder så du kan se mexPrintfs i tråden om du vill
}

//################################################
//##########--Thread Code--#########################
//################################################
void cdecl MyThread(LPVOID pVoid)
{
deklarera variabler/pekare
int x = 0; används för att justera # av medan loopar
CONST mxArray * myarray; används för att extrahera din matlab variabelns värde
Dubbelrum * TempPointer; används för att extrahera din matlab variabelns värde
dubbel Val; håller din matlab variabelns värde

---Setup pekare innan du anger trådens ögla, på detta sätt som vi inte behöver prata
---till matlab alls när vi går in i tråden (vi kommer att helt enkelt att komma åt matlab
---variabler minnesplats). Detta är användbart eftersom en hel del riktigt snabb kommunikation med
---matlab kan krascha det.
få en pekare till en pekare till variabeln hullo (som du ska initiera i matlab innan du kör detta prog)
myarray = mexGetVariablePtr ("bas", "hullo"); kan vara bas som ringer eller global
får hullo variabelns värde från pekarna, förvara den i Val
TempPointer = mxGetPr(myarray);

While(x<10)
{
x ++;

Här har vi tillgång till matlab variabelns minnesplats utan att behöva prata med matlab
Val = * TempPointer;

spela upp ett ljud
PlaySound ("alleluia.wav", NULL, SND_FILENAME | SND_SYNC);
vänta mellan ljud Val sekunder
Sleep(1000*val);

---för att testa---
mexPrintf("Val:%f", Val);
}
}

Se Steg
Relaterade Ämnen

Killswitch ingen borrning eller lödning EASY!

De KILLSWITCH med borrning och LÖDNING skrämma dig detta är för dig!Detta kostar 2,99$. du behöver en normalt öppen switch!en killswitche är en tillfällig växla, att när man trycker på stopp signal från kommer ut från gitarren och kommer in i förstär...

En multithreaded blinkande theremin drivs av VIPER

Theremin är ett experimentellt musikinstrument uppfanns av den ryska fysikern Lev Sergejevitj Termen på 20-talet. Utan fysisk kontakt, kan två antenner känna theremin spelarens händer position i rymden och använda den för att styra frekvensen och amp...

Flera blinkande lysdioder i olika

I denna tutorial ska jag visa dig hur blinka flera lysdioder i olika takt på Arduino-liknande nämnder använder VIPER.Blinkar en LED är känd som "Hej världen av inbäddade enheter"... men med VIPER kan vi göra det roligare. Vi kan blinka många lys...

Få tillbaka till liv en Vixen SP fäste för fotografering

Jag köpte detta fäste för länge sedan och det vilade år i källaren. Jag tyckte om att använda det (igen) för att göra astrofotografering.Detta ledde till att vissa steg som jag hade att göra:Jag hade ren hela montera och ta bort den gamla, Sega fette...

Arduino & Visual Basic 6.0 (kontinuerlig Servo Motor)

detta Instructable är nästan lik till Light Controller postat tidigare. Den innehåller samma struktur och mönster i styr Servo Motor. Jag använde några idéer form Galil motorisk kontroll strukturer för att skapa min parser. Nämligen, SH (Servo här) o...

LongPathTool

http://LongPathTool.comLång väg verktyg är avancerade lång väg filer manager gör det möjligt för att fixa efter vägen för lång fel:Filnamnet är för lång för att ta bort filsökvägen för lång väg för djupt. Fel 1320. Den angivna sökvägen är för lång sö...

Extrema maträtt tvätt Made Easy!

Fick en massa rätter att tvätta för hand och behöver dem gjort bråttom? Då detta instructable är för dig!** Följande instructable är min Uttömmande förteckning över tricks, tips, hacks och tekniker för att få--särskilt mycket av--rätter på en gång gj...

För det andra lödning hand.

Detta instructable är så lätt att göra, så det finns ingen anledning att gå ut och få en av dessa händer gratis hjälpare, bästa med detta instructable är att du återanvänder datorer som inte har att gå till en papperskorgen soptipp. Visa är också den...

Stepper Motor Easy Driver

I detta instructable jag ger ett kodexempel och layout för att ansluta en stegmotor för Nema 17 form faktorn till en Easy Driver motor controller styrelse sedan styra motorn med en Arduino Uno.Steg 1: Nödvändiga komponenter: NEMA 17 form faktorn steg...

Arduino/Easy Driver Animation Control Board

Detta instructable tjänar två syften i förhållande till församlingen och använder ett Animation Control Board (PCB). PCB är en spin off från mitt projekt att skapa en N-skala vindbrygga som är funktionella och drivs av en Arduino ihopkopplad med en l...

Easy gratis 3d rendering online

3d rendering online gratisEasy gratis 3d rendering online från AMMONIT A på Vimeo. gå till http://www.sculpteo.com/en/...

FÄRG upptäckt med hjälp av MATLAB

I denna artikel kommer jag att visa hur man upptäcker färg med MATLABSteg 1: GUI element som används:1. axlar2. två tryckknappar3. redigera textFärgbilder• En färgmodell är en metod för att ange färger i vissa vanliga sättet. Det består i allmänhet a...

4 sätt att ansluta en tråd utan lödning

i detta Instructable jag lär dig fyra sätt att ansluta en tråd utan lödning. Lödning kan vara knepigt och det värmer upp rummet, så varför inte bara Skippa det helt om du kan? En annan irriterande sak om lödning är att det tar ett tag att värma upp,...

Nästan gratis bra snygg lödning stand

Vi behöver alla som lödning stand, vi kan köpa färdiga eller DIY pigg som kan göra en nästan gratis.Eftersom jag var att göra en mycket hög kvalitet lödning station under 33$. Montern kostar sd vara så nära noll som möjligt.Samtidigt här jag har tagi...

Förstoppning... inte mer, ingen smärta, ingen blödning

Det är den ståndpunkt som vi kunde se från ovan visar våra händer på ståndpunkten att trycka in delen mellan svanskotan och den sista delen av ändtarmen - naturligtvis inte är det nödvändigt att röra denna del också bör undvikas som täcker våra fingr...

Hur man fixar ett kopparrör... UTAN lödning

Här är berättelsen:I söndags fick jag en frenetisk text från min fru..... .vatten läckte kök i taket!!!Vad skulle du göra i denna situation?Om du inte har ett omedelbart svar du tur.Idag ser du hur man fixar ett kopparrör i mindre än 20 minuter.Allva...

Sammanfogande & lödning olika tråd inline - knep

Jag installerar en extra eluttag och LED körning och spotlights på min BMW R1150GS. Jag sprang en 10 spårvidd silicon kabel från batteriet och jag ville placera blade fuse inline där jag kunde komma åt det enkelt bör säkring slaget.Steg 1: Trycka trå...

Färg spårning / CMUcam och MATLAB

beskrivning av hur du använder min MATLAB-kod för att få MATLAB att prata med en CMUcam att göra enkla färg spårning.Steg 1: hur man använder koden CMUcam att ansluta till datorn via seriell kabel som nämns i dokumentationen (de grå seriell adapter s...

Android kontrollerade LCD/LED Display - ingen Android-programmering, nr lödning behövs.

IntroductionDetta bygga använda Arduino plattform för att styra en LCD/LED display från din Android mobil. Det är en plug and play bygga som kräver nr Android programmering, ingen lödning och ingen handstil av Arduino kod, det du inte vill.Den grundl...