مشاهده دست آورد نظرسنجی: مباحث این تاپیک ادامه داشته باشد و در صورت ادامه کدام ی

رای دهنده
3. شما نمی توانید در این رای گیری رای بدهید
  • پایان فعالیت تاپیک

    0 0%
  • ادامه بحث با پورت موازی

    1 33.33%
  • ادامه بحث با پورت سریال

    2 66.67%
صفحه 2 از 3 اولاول 123 آخرآخر
نمایش نتایج 41 تا 80 از 85

نام تاپیک: آموزش ارتباط با سخت افزار

  1. #41

    نقل قول: آموزش ارتباط با سخت افزار

    با سلام و خسته نباشید. میخواستم یک pdf کامل در مورد cpp برای دانلود بزارید. خیلی ممنون.

  2. #42

    نقل قول: آموزش ارتباط با سخت افزار

    با سلام
    من می خوام از طریق پورت پرینتر بیت های 0 و 1 را به کامپیوتر بدم، بعد نسبت به کد ورودی ، در کامپیوتر اونها را شناسایی کنم و در در قبال هر کد یک برنامه در کامپیوتر اجرا بشه

    کسی می تونه به من کمک کنه؟ با چه برنامه ای بهتر هست این کار رو انجام بدم؟ چه چیزی لازم دارم؟

    با تشکر

  3. #43
    کاربر دائمی آواتار masoud_pnu
    تاریخ عضویت
    آبان 1387
    محل زندگی
    کرمانشاه
    پست
    286

    نقل قول: آموزش ارتباط با سخت افزار

    با سلام. من هم در تصدیق صحبت های kernel عزیز توصیه می کنم کار با میکرو کنترلرها بخصوص AVR رو یاد بگیرید. البته رشته من نرم افزار هست. اما در کار با میکرو ها آدم با مسایلی برمی خوره که واقعا جالبه.

  4. #44

    نقل قول: آموزش ارتباط با سخت افزار

    کسی پاسخ به من نمی ده؟

    اقا مسعود، من هم نرم افزار خوندم

    با برنامه نویسی های مختلف کار کردم اما معمولا نیاز به کار با پورت نداشتم

    من می خوام از طریق پورت پرینتر بیت های 0 و 1 را به کامپیوتر بدم، بعد نسبت به کد ورودی ، در کامپیوتر اونها را شناسایی کنم و در در قبال هر کد یک برنامه در کامپیوتر اجرا بشه

    پیشنهاد شما چیه و از چه روشی استفاده کنم؟ منبع هم اگه هست معرفی کنید لطفا

    ممنون

  5. #45
    کاربر تازه وارد آواتار arvant
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Media
    پست
    92

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    میخواستم اگه کسی میتونه در مورد کار با فلش مموری های که با یو اس بی به سیستم وصل میشن کمم کنه
    میخوام به تک تک خانه های حافظه توی این نوع حافظه ها دسترسی داشته باشم.و بتونم مستقیما" توش چیز بنویسم.

  6. #46
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: آموزش ارتباط با سخت افزار


  7. #47

    نقل قول: آموزش ارتباط با سخت افزار

    لطفا اگر میتوانید برنامه چراغ چشمک زن را با زبان c برای من ارائه دهیید. فقط با زبان c

  8. #48

    نقل قول: آموزش ارتباط با سخت افزار

    [quote=Alireza Orumand;423614]masoud جان درسته که این توابع توی این سرفایل ها وجود داره ولی یادتون باشه شما دارید تو ویندوز برنامه مینویسید ولی این سرفایل مال زمانه داسه و تو داس اجازه دسترسی مستقیم به پورت ها گرفته نشده بود. به هر حال شما میخواهید برنامه رو تو ویندوز اجرا کنید و برای دسترسی به پورت هم باید به یکی از روش هایی که گفته شد عمل کنید.
    شرمنده از اینکه تنها کمکمی که میتونم به شما بکنم اینه که بگم از کامپایلر جدید تری استفاده کنید که این سرفایل رو داشته باشه.
    راستی میشه بگید مشکلتون چی هست که از کامپایلر های قدیمی استفاده میکنید؟
    این یک پروژه که باید با c بنویسم . اگه ویندوز 98 باشه میتونیم برنامه رابا c اجرا کرد وجواب گرفت

  9. #49

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    برای ارسال اطلاعات روی پورت سریال هم راهنمایی کنید . ممنون.

  10. #50
    کاربر جدید آواتار S@LLy_Sen@tor
    تاریخ عضویت
    دی 1387
    محل زندگی
    کرمان
    پست
    11

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط kernel مشاهده تاپیک
    من تا بحال 9 تا روبوت ساختم که 7 تا از اونا با میکرو کنترل می شد ( به تنهایی ).
    تو روبات 8 چون از تکنیک های پردازش تصویر استفاده کردم یک ارتباط با کامپیوتر هم به صورت wireless درست کردم که به پورت سریال متصل می شد.
    تو روبات آخری هم که ساختم از پورت USB برای اتصال به کامپیوتر استفاده کردم در ضمن این آخریه قابلیت اتصال و کنترل از طریق اینترنت هم داره
    اگه چیز دیگه ای برای سوال دارین من با اطلاعات اندک خود میتونم راهنمایی تون بکنم
    سلام،
    خوشحالم که بالاخره یه نفرو پیدا کردم که با میکرو کار کرده و ربات ساخته
    در ضمن میخواد راهنمایی هم بکنه!
    من به تازگی عضو یه گروه ساخت روبات شدم در این گروه طبق معمول کارها تقسیم شده و متاسفانه وشاید هم خوشبختانه برنامه نویسی آن را به من دادن!
    در حالی که من اصلا چیز زیادی در مورد پورت ها نمی دونم
    که با این تاپیک یه چیزایی دستگیرم شد(ممنون)
    حالا از شما میخوام منو راهنمایی کنید،
    تکنیک پردازش تصویر چیه؟!
    چطوری میشه به صورت wireless به پورت سریال متصل شد؟(برنامه نویسیش چه جوریه؟)
    مانیتورینگ چیست؟
    اطلاعاتی که از روبات گرفته میشه (ازطریق پورت) اگر بخواهیم به صورت گرافیکی باشد کدام نرم افزار را پیشنهاد میکنید؟
    و....
    مرسی

  11. #51
    کاربر جدید آواتار S@LLy_Sen@tor
    تاریخ عضویت
    دی 1387
    محل زندگی
    کرمان
    پست
    11

    نقل قول: آموزش ارتباط با سخت افزار

    به پورت USb چه جوری میشه دسترسی پیدا کرد و از آن اطلاعات گرفت؟
    کدام پورت برای کار با ربات بهتره؟سرعت بالاتری داره؟وکار باهاش راحت تره؟

  12. #52
    کاربر جدید
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    بیدخت
    پست
    3

    نقل قول: آموزش ارتباط با سخت افزار

    با سلام
    آقایون مثل این که این تاپیک تعطیل شده
    شاید آقای Alireza Orumand هم رفتن خدمت زیر پرچم؟

  13. #53

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    من میخواهم از طریق ورودی Line in کارت صوتی سیگنال وارد کنم و پس از یک سری پردازش سیگنال را نمایش بدهم لطفا من را راهنمایی کنید.
    nemati_nj2004@yahoo.com

  14. #54

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    من یک مدار میخوام که از طریق کامپیوتر و با پورت مواری بشه 3 موتور استپر رو کنترل کنه و شبیه cnc عمل کنه کسی می تونه کمک کنه....

  15. #55

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    ترانزیستورهای مدار چیه ؟

  16. #56

    نقل قول: آموزش ارتباط با سخت افزار

    ممنون از لطفتون

  17. #57

    نقل قول: آموزش ارتباط با سخت افزار

    دوستان اگه تاپيك رو ادامه نميدين يه منبع خوب معرفي كنيد.

  18. #58

    نقل قول: آموزش ارتباط با سخت افزار

    با سلام
    خیلی ممنونم از فعالیت های دوستان در این زمینه

  19. #59
    کاربر دائمی آواتار mabbaszadegan
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    185

    نقل قول: آموزش ارتباط با سخت افزار

    سلام به دوستان عزیز ، البته یه کم با تاخیر

    من تا حالا با سخت افزار کار نکردم ، میگم اگه موافقید این تاپیک رو ادامه بدیم ، به نظرم میتونه مفید باشه

    فقط اگه ممکنه از سطح مبتدی شروع کنید تا منم بفهمم

    منتظرما !!!!!

  20. #60

    نقل قول: آموزش ارتباط با سخت افزار

    دوست عزیز جناب علیرضا
    لطف میکنید یه برنامه فراخوانی و خواندن و نوشتن روی پورت سری را بذاری
    ممنون میشم

  21. #61
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط vahidbbb مشاهده تاپیک
    برنامه فراخوانی و خواندن و نوشتن روی پورت سری
    این برنامه را ببینید.

  22. #62

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط aminsharifi67 مشاهده تاپیک
    این برنامه را ببینید.
    این برنامه با C#‎‎ هست ولی در c و C++‎‎ نمیشه اینطوری برنامه نوشت ...خیلی سخت تره!
    خودم دارم روی یه برنامه واسه این کار میکنم ولی هنوز جواب 100% نداده وگرنه میذاشتمش

    در همین راستا یه سوال داشتم من میخوام برنامه ای بنویسم که در حالت sleep باشه ( یعنی نمیخوام اینطوری باشه که مدام داخل یه لوپ بپرسم اتفاقی افتاده یا نه) و وقتی که وقفه ای از یه IRQ مشخص مثلا IRQ4 مربوط به Com1 اومد بره یه عملی رو انجام بده در حالت ساده اش یه متنی رو چاپ کنه ...فقط تاکید میکنم خیلی مهمه حالت busy waiting نباشه !کسی کمکی میتونه بکنه ؟

  23. #63
    کاربر جدید
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    تهران
    پست
    5

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    می خواستم بدونم که چجوری میشه به میکروفن خود سیستم وصل شد و از اون فریکانس گرفت؟

  24. #64
    کاربر جدید
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    تهران
    پست
    5

    نقل قول: آموزش ارتباط با سخت افزار

    سوال:
    چه جوری می شه به میکروفن وصل شد و ازش اطلاعات صوتی گرفت؟

  25. #65
    کاربر دائمی آواتار amin1softco
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    پای آن سرو بلند
    پست
    1,832

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط bidemajnoon مشاهده تاپیک
    سوال:
    چه جوری می شه به میکروفن وصل شد و ازش اطلاعات صوتی گرفت؟
    گرچه یکمی دیره اما این سورس رو ببین :

    /************************************************** **************************
    ** WARNING: You need at least a COMPACT memory model to run this. **
    ************************************************** ***************************
    ** Demonstration of recording a WAV file through the Sound Blaster **
    ** by Steven H Don **
    ** **
    ** For questions, feel free to e-mail me. **
    ** **
    ** shd@earthling.net **
    ** http://shd.cjb.net **
    ** **
    ************************************************** **************************/
    //Include files
    #include "ALLOC.H"
    #include "DOS.H"
    #include "MEM.H"
    #include "CONIO.H"
    #include "STDIO.H"

    #define CD 2
    #define Microphone 4
    #define LineIn 5

    //The simplest header a WAV file can have is this:
    struct SimpleHeader {
    long RIFF;
    long NextChunkSize;
    long WAVE;
    long fmt;
    long fmtDataLength;
    short WaveType;
    short Channels;
    long SampleRate;
    long BytesPerSecond;
    short BlockAlignment;
    short BitResolution;
    long data;
    long SoundLength;
    } Header;

    char Key;
    unsigned int WBuffer; //Write Buffer indicator
    unsigned char *DMABuffer; //Pointer to DMA Buffer

    unsigned int DMA; //The DMA channel
    unsigned int IRQ; //The IRQ level
    unsigned int Base; //Sound Blaster base address, Word

    //Pointers to old interrupt routines
    #ifdef __cplusplus
    void interrupt (*OldIRQ)(...);
    #else
    void interrupt (*OldIRQ)();
    #endif

    FILE *WAVFile; //Handle of the WAV file}
    long Recorded; //Amount of samples recorded}

    /************************************************** **************************
    ** Checks to see if a Sound Blaster exists at a given address, returns **
    ** true if Sound Blaster found, false if not. **
    ************************************************** **************************/
    int ResetDSP(unsigned int Test)
    {
    //Reset the DSP
    outportb (Test + 0x6, 1);
    delay(10);
    outportb (Test + 0x6, 0);
    delay(10);
    //Check if (reset was succesfull
    if (((inportb(Test + 0xE) & 0x80) == 0x80) && (inportb(Test + 0xA) == 0xAA))
    {
    //DSP was found
    Base = Test;
    return (1);
    }
    else
    //No DSP was found
    return (0);
    }

    /************************************************** **************************
    ** Send a byte to the DSP (Digital Signal Processor) on the Sound Blaster **
    ************************************************** **************************/
    void WriteDSP(unsigned char Value)
    {
    //Wait for the DSP to be ready to accept data
    while ((inportb(Base + 0xC) & 0x80) == 0x80);
    //Send byte
    outportb (Base + 0xC, Value);
    }

    /************************************************** **************************
    ** Writes a value to the SB's mixer chip **
    ************************************************** **************************/
    void WriteMixer (unsigned char R, unsigned char V)
    {
    outportb (Base + 4, R);
    outportb (Base + 5, V);
    }

    /************************************************** **************************
    ** Selects the source device for recording. **
    ** Valid values are: Microphone, CD and LineIn **
    ************************************************** **************************/
    void SelectSource (char Source)
    {
    //For older SB's
    WriteMixer (0xC, Source);
    //For newer SB's
    {
    //Disable right channel
    WriteMixer (0x3E, 0);
    //Record all sound through left channel
    switch (Source) {
    case Microphone : WriteMixer (0x3D, 1); break;
    case CD : WriteMixer (0x3D, 6); break;
    case LineIn : WriteMixer (0x3D, 24); break;
    }
    //Set volume of whatever is recording to full
    switch (Source) {
    case Microphone : WriteMixer (0x0A, 7); break;
    case CD : WriteMixer (0x28, 255); break;
    case LineIn : WriteMixer (0x2E, 255); break;
    }
    //Allow line and CD to be heard through speakers, but not microphone}
    switch (Source) {
    case Microphone : WriteMixer (0x3C, 0); break;
    case CD : WriteMixer (0x3C, 6); break;
    case LineIn : WriteMixer (0x3C, 24); break;
    }
    }
    }

    /************************************************** **************************
    ** Asks the user for a filename and prepares that file for recording. **
    ************************************************** **************************/
    void PrepareFile ()
    {
    char FileName [255];

    //Ask the user for a file name
    printf ("Please give filename : ");
    scanf ("%s", FileName);
    //Open the file for output
    WAVFile = fopen (FileName, "wb");
    //Save a dummy header
    fwrite (&Header, sizeof(Header), 1, WAVFile);
    }

    /************************************************** **************************
    ** Starts recording. The DMA controller is programmed with a block length **
    ** of 32K - the entire buffer. The DSP is instructed to play blocks of 16K **
    ** and then generate an interrupt (which allows the program to save the **
    ** parts that have already been recorded) **
    ************************************************** **************************/
    void StartRecording ()
    {
    long LinearAddress;
    unsigned int Page, OffSet;

    //Nothing recorded yet
    Recorded = 0;

    WriteDSP (0xD3); //DSP-command D1h - Disable speaker, required
    //on older SB's
    WriteDSP (0x40); //DSP-command 40h - Set sample frequency
    WriteDSP (165); //Write time constant
    /*
    The time constant is calculated as follows:
    (65536 - (256000000 / frequency)) >> 8
    */

    //Convert pointer to linear address
    LinearAddress = FP_SEG (DMABuffer);
    LinearAddress = (LinearAddress << 4) + FP_OFF (DMABuffer);
    Page = LinearAddress >> 16; //Calculate page
    OffSet = LinearAddress & 0xFFFF; //Calculate offset in the page
    outportb (0x0A, 4 | DMA); //Mask DMA channel
    outportb (0x0C, 0); //Clear byte pointer
    outportb (0x0B, 0x54 | DMA); //Set mode
    /*
    The mode consists of the following:
    0x54 + x = binary 01 01 01 xx
    | | | |
    | | | +- DMA channel
    | | +---- Write operation (the DSP writes to memory)
    | +------- Auto init mode
    +---------- Block mode
    */

    outportb (DMA << 1, OffSet & 0xFF); //Write the offset to the DMA controller
    outportb (DMA << 1, OffSet >> 8);

    if (DMA == 0) outportb (0x87, Page);
    if (DMA == 1) outportb (0x83, Page);
    if (DMA == 3) outportb (0x82, Page);

    outportb ((DMA << 1) + 1, 0xFF); //Set the block length to 0x7FFF = 32 Kbyte
    outportb ((DMA << 1) + 1, 0x7F);

    outportb (0x0A, DMA); //Unmask DMA channel

    WriteDSP (0x48); //DSP-command 48h - Set block length
    WriteDSP (0xFF); //Set the block length to 0x3FFF = 16 Kbyte
    WriteDSP (0x3F);
    WriteDSP (0x2C); //DSP-command 2Ch - Start auto-init playback
    }

    /************************************************** **************************
    ** Saves one half of the DMA buffer to the file **
    ************************************************** **************************/
    void SaveBuffer (unsigned int Buffer)
    {
    fwrite (DMABuffer + (Buffer << 14), 16384, 1, WAVFile);
    Recorded += 16384;
    }

    /************************************************** **************************
    ** Saves the final part of the buffer and finalizes the WAV file **
    ************************************************** **************************/
    void EndRecording ()
    {
    unsigned int Counter, OffSet, DMAPointer;

    //Stops DMA-transfer
    WriteDSP (0xD0);
    WriteDSP (0xDA);

    //Read DMA pointer from DMA controller
    DMAPointer = inportb (1 + (DMA >> 1));
    DMAPointer += (inportb (1 + (DMA >> 1)) << 8);

    /*
    DMAPointer contains amount that remains to be played.
    This is converted to the offset of the current sample
    */
    OffSet = 0x7FFF - DMAPointer;

    //Save the last bit
    fwrite (DMABuffer + (OffSet & 16384),
    OffSet & 16383,
    1, WAVFile);

    //The total amount recorded is now available
    Recorded += OffSet & 16383;

    //Save the actual header
    Header.RIFF = 0x46464952; //"RIFF"
    Header.NextChunkSize = Recorded + 36; //Size of the WAVE chunk
    Header.WAVE = 0x45564157; //"WAVE"
    Header.fmt = 0x20746D66; //"fmt "
    Header.fmtDataLength = 16; //length of fmt chunk
    Header.WaveType = 1; //Standard uncompressed WAV file
    Header.Channels = 1; //Mono
    Header.SampleRate = 11025; //11KHz
    Header.BytesPerSecond = Header.Channels * Header.SampleRate;
    Header.BlockAlignment = 1; //1 for 8bit, 2 for 16bit
    Header.BitResolution = 8; //8bit WAV file
    Header.data = 0x61746164; //"data"
    Header.SoundLength = Recorded;
    //Save the actual header
    fseek (WAVFile, 0, SEEK_SET);
    fwrite (&Header, sizeof(Header), 1, WAVFile);
    fclose (WAVFile);
    }

    /************************************************** **************************
    ** IRQ service routine - this is called when the DSP has finished playing **
    ** a block **
    ************************************************** **************************/
    #ifdef __cplusplus
    void interrupt ServiceIRQ (...)
    #else
    void interrupt ServiceIRQ ()
    #endif
    {
    //Relieve DSP
    inportb (0x22E);
    //Acknowledge hardware interrupt
    outportb (0x20, 0x20);
    //Acknowledge cascade interrupt for IRQ 2 and 10
    if (IRQ == 2 || IRQ == 10) outportb (0xA0, 0x20);
    //Save buffer
    SaveBuffer (WBuffer);
    //Toggle between write buffers
    WBuffer ^= 1;
    }

    /************************************************** **************************
    ** This procedure allocates 32K of memory to the DMA buffer and makes sure **
    ** that no page boundary is crossed **
    ************************************************** **************************/
    void AssignBuffer ()
    {
    char *TempBuf; //Temporary pointer
    long LinearAddress;
    unsigned int Page1, Page2; //Words

    //Assign 32K of memory
    TempBuf = (char *)malloc(32768);

    //Calculate linear address
    LinearAddress = FP_SEG (TempBuf);
    LinearAddress = (LinearAddress << 4) + FP_OFF (TempBuf);

    //Calculate page at start of buffer
    Page1 = LinearAddress >> 16;

    //Calculate page at end of buffer}
    Page2 = (LinearAddress + 32767) >> 16;

    //Check to see if a page boundary is crossed
    if (Page1 != Page2) {
    //If so, assign another part of memory to the buffer
    DMABuffer = (char *)malloc(32768);
    free (TempBuf);
    } else //otherwise, use the part we've already allocated
    DMABuffer = TempBuf;

    memset (DMABuffer, 128, 0x7FFF);
    }

    void FindSB ()
    {
    int Temp;

    //Check for Sound Blaster, address: ports 220, 230, 240, 250, 260 or 280
    for (Temp = 1; Temp < 9; Temp++) {
    if (Temp != 7)
    if (ResetDSP (0x200 + (Temp << 4))) {
    break;
    }
    }
    if (Temp == 9) {
    //or none at all
    printf ("No Sound Blaster found\n");
    return;
    } else printf ("Sound Blaster found at %Xh\n", Base);
    }

    void InitIRQandDMA ()
    {
    printf ("Please specify DMA channel : "); scanf("%d", &DMA);
    printf ("Please specify IRQ level : "); scanf("%d", &IRQ);

    //Save old IRQ vector
    if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
    if (IRQ == 2) OldIRQ = getvect (0x71);
    if (IRQ == 10) OldIRQ = getvect (0x72);
    if (IRQ == 11) OldIRQ = getvect (0x73);
    } else OldIRQ = getvect (8 + IRQ);

    //Set new IRQ vector
    if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
    if (IRQ == 2) setvect (0x71, ServiceIRQ);
    if (IRQ == 10) setvect (0x72, ServiceIRQ);
    if (IRQ == 11) setvect (0x73, ServiceIRQ);
    } else setvect (8 + IRQ, ServiceIRQ);

    //Enable IRQ
    if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
    if (IRQ == 2) outportb (0xA1, inportb (0xA1) & 253);
    if (IRQ == 10) outportb (0xA1, inportb (0xA1) & 251);
    if (IRQ == 11) outportb (0xA1, inportb (0xA1) & 247);
    outportb (0x21, inportb (0x21) & 251);
    } else outportb (0x21, inportb (0x21) & !(1 << IRQ));

    }

    void ReleaseIRQandDMA ()
    {
    //Free interrupt vectors used to service IRQs
    if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
    if (IRQ == 2) setvect (0x71, OldIRQ);
    if (IRQ == 10) setvect (0x72, OldIRQ);
    if (IRQ == 11) setvect (0x73, OldIRQ);
    } else setvect (8 + IRQ, OldIRQ);

    //Mask IRQs
    if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
    if (IRQ == 2) outportb (0xA1, inportb (0xA1) | 2);
    if (IRQ == 10) outportb (0xA1, inportb (0xA1) | 4);
    if (IRQ == 11) outportb (0xA1, inportb (0xA1) | 8);
    outportb (0x21, inportb (0x21) | 4);
    } else outportb (0x21, inportb (0x21) | (1 << IRQ));
    }

    void main ()
    {
    //Clear screen
    clrscr ();

    printf ("Demonstration of recording samples using DMA - by Steven Don\n");
    printf ("------------------------------------------------------------\n");

    //Look for the Sound Blaster
    FindSB ();

    //Assign memory to the DMA Buffer
    AssignBuffer ();

    //Set write buffer to first buffer
    WBuffer = 0;

    //Select microphone as the source
    SelectSource (Microphone);

    //Ask the user for a filename and prepare the file for output
    PrepareFile ();

    //Ask the user for IRQ and DMA channels
    InitIRQandDMA ();

    //Start playback
    StartRecording ();

    //Wait until escape is pressed
    do; while (getch () != 27);

    //End the recording
    EndRecording ();

    //Free the memory allocated to the sound buffer
    free (DMABuffer);

    //Release the IRQ and DMA channels
    ReleaseIRQandDMA ();
    }

    فایل های ضمیمه فایل های ضمیمه

  26. #66

    نقل قول: نقشه مدار stepmotor

    سلام تو اين فايل ضميمه اي كه گاشتيد شماره ترانزيستورهاي منفي رو ننوشته ايد ميشه لطف كنيد شمارشونو بفرماييد و اينكه هر ترانزيستور منفي رو ميشه گذاشت؟

  27. #67

    نقل قول: خدمت آقاي kernel و تمامي برو بچ

    آقاي كرنل لطف كنيد اولا كمي در مورد پردازش تصوير توضيح بديد
    ثانيا يه كمي هم در مورد اينكه وقتي بعد از اينكه ما يه ميكرو را مثلا در نرم افزار codevision برنامه ريزي كرديم حال اين ميكرو آمادست ولي چطوري اونو به كار بگيريم مثلا چطوري باهاش يه استپ موتور رو كنترل كنيم در چه جايي قرار بديم مدار خاصي بايد بسازيم و يا چطوري باهاش LED هارو روشن كنيم و غيره
    خيلي ممنون اگه لطف كنيد و زودتر جواب بديد چون من نيازش دارم

  28. #68
    کاربر دائمی آواتار voiceoffox
    تاریخ عضویت
    مهر 1389
    محل زندگی
    مشهد
    پست
    122

    نقل قول: آموزش ارتباط با سخت افزار

    ببخشید که یکم دیر دارم این سوال رو مطرح می کنم ... شماره منفی در پورت موازی برای وصل کردن پایه منفی LED کدومه !؟

  29. #69

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    اين برنامه PortTalk چه جوري رو ويندوز 7 عمل مي كنه؟

  30. #70
    کاربر دائمی آواتار voiceoffox
    تاریخ عضویت
    مهر 1389
    محل زندگی
    مشهد
    پست
    122

    Thumbs down نقل قول: آموزش ارتباط با سخت افزار

    آقا اینجا همه چی قاطی شده و وضع حسابی به هم ریخته ! ...

    پس به خواهشا به این نکته ها توجه کنین !

    1. اگه تاپیک تعطیله و متولی نداره بیخودی خودتون رو خسته نکنین و پست اضافه ندین !
    2. اگه تاپیک تعطیل نیست (که عملا تعطیله ! ) برای جواب دادن به سوال ها و ... سعی کنین بیشتر از ای میل هایهم استفاده کنین تا خیلی انجا شلوغ نشه !
    3. ذلطفا مباحث خارج از پورت مطرح نکنید !!!
    4. اگه تاپیک دوباره رونق نگرفت (که به احتمال 99 درصد ه8م نمی گیره ! ) یکی از دوستان که <تو این زمینه وارده> بحث ادامه بده یا یه جوری جمعش کنه تو رو خدا !

    ممنون و موق باشید !

  31. #71

    نقل قول: آموزش ارتباط با سخت افزار

    سلام
    ممنون از تاپیک جذابتون
    من دانشجوی رشته مهندسی ITهستم .سوالم این بود که برای طراحی روبات چه زمینه هایی رو باید یاد بگیرم و از چه دوستانی کمک بگیرم

  32. #72
    کاربر جدید
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    تهران
    پست
    2

    نقل قول: آموزش ارتباط با سخت افزار

    حالا که تموم شد و رفت ولی می خواستم پیشنهاد بدم به جای استفاده از DLL و وابسته کردن خودتون بهش می تونید مستقیما با سی/سی پلاس پلاس با سخت افزار ارتباط برقرار کنید.
    برای این کار
    1- یک کرنل ساده درست کنید که برنامه رو خارج ازسیستم عامل اجرا کنه (با همکاری اسمبلی و سی پلاس پلاس به راحتی این کار انجام میشه !)
    2- حالا ارتباط مستقیم رو با پورت و دستگاه ها تجربه کنید !

  33. #73

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط mjx_icode مشاهده تاپیک
    حالا که تموم شد و رفت ولی می خواستم پیشنهاد بدم به جای استفاده از DLL و وابسته کردن خودتون بهش می تونید مستقیما با سی/سی پلاس پلاس با سخت افزار ارتباط برقرار کنید.
    برای این کار
    1- یک کرنل ساده درست کنید که برنامه رو خارج ازسیستم عامل اجرا کنه (با همکاری اسمبلی و سی پلاس پلاس به راحتی این کار انجام میشه !)
    2- حالا ارتباط مستقیم رو با پورت و دستگاه ها تجربه کنید !
    سلام،
    دوست عزیز کی گفت تموم شد و رفت من به شخصه علاقه من به یادگیری هستم ولی در این زمینه ( ارتباط با سخت افزار مثلا برنامه نویسی رو پورت usb ) هیچی بلد نیستم ، کتاب فارسی خوب هم پیدا نکردم ، کسی هم نبود یاد بده.
    این تاپیک اگر راه بیافته ( دوباره ) خیلی عالی میشه ، برای شروع و جهت افزایش هیجان لطف کن این چیزی که گفتی را توضیح بده و بی زحمت جوری توضیح بده که همه بتونن استفاده کنند، فکر کن داری تو کلاس درس می دی توی کلاس هم شاگرد قوی هست و هم متوسط و هم ضعیف.

    اگه وقت بگذاری و توضیح بدی همه مدیونت می شویم.

    با تشکر.

  34. #74
    کاربر دائمی آواتار caspianhero
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    زیر سایه ی خدا
    پست
    434

    نقل قول: آموزش ارتباط با سخت افزار

    با سلام
    میخواستم بدونم C++‎ میتونه مثل زبان سی با پورت ها ارتباط برقرار کنه از نظر سخت افزاری(کلا)؟؟؟

    سپاس

  35. #75

    نقل قول: آموزش ارتباط با سخت افزار

    لطفا یکی بیاد آموزش کار با پورت یو اس بی رو قرار بده خواهشا یا یک منبع خوب معرفی کنه

  36. #76

    نقل قول: آموزش ارتباط با سخت افزار

    سلام به همه مهندسین عزیز
    عزیزان سوالی داشتم خیلی خوشحال می شم که کمکم کنید-مرسی

    من می خوام برنامه ای بنویسم که وقتی روی دکمه مثلا Record کلیک کردم صدایی را از میکروفن تو 10 ثانیه ضبط کنه و بعد از 10 ثانیه اون صدایی رو که ضبط کرده در جایی از هاردم ذخیره کنه و بلافاصله دومرتبه تو 10 ثانیه شروع به ضبط مجدد صدا و ذخیره آن کنه.
    و این عمل را تا آنجایی ادامه بده که بر روی دکمه Stop کلیک کنم.
    دوستان وارد و عزیزان برنامه نویس لطفا در کمکتون تعجیل بعمل آورید ، بدجوری نیاز به کمکتون دارم مرسی.

  37. #77
    کاربر دائمی آواتار #target
    تاریخ عضویت
    دی 1387
    محل زندگی
    استان گلستان
    پست
    589

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط mtcanada مشاهده تاپیک
    سلام به همه مهندسین عزیز
    عزیزان سوالی داشتم خیلی خوشحال می شم که کمکم کنید-مرسی

    من می خوام برنامه ای بنویسم که وقتی روی دکمه مثلا Record کلیک کردم صدایی را از میکروفن تو 10 ثانیه ضبط کنه و بعد از 10 ثانیه اون صدایی رو که ضبط کرده در جایی از هاردم ذخیره کنه و بلافاصله دومرتبه تو 10 ثانیه شروع به ضبط مجدد صدا و ذخیره آن کنه.
    و این عمل را تا آنجایی ادامه بده که بر روی دکمه Stop کلیک کنم.
    دوستان وارد و عزیزان برنامه نویس لطفا در کمکتون تعجیل بعمل آورید ، بدجوری نیاز به کمکتون دارم مرسی.
    اینجا رو نگاه کن

  38. #78

    نقل قول: آموزش ارتباط با سخت افزار

    نقل قول نوشته شده توسط #target مشاهده تاپیک
    ممنون از راهنماییتون اما ترجیحا با
    ++c
    و
    #c
    می خواستم .
    از دوستان کسی دیگه هم می تونه راهنمایی کنه *فوری لطفا*

  39. #79
    کاربر دائمی آواتار #target
    تاریخ عضویت
    دی 1387
    محل زندگی
    استان گلستان
    پست
    589

    نقل قول: آموزش ارتباط با سخت افزار

    ممنون از راهنماییتون اما ترجیحا با
    ++c
    پس اون چیه ؟؟ API سیستم عامل ویندوز هست که شما میتونید در زبان برنامه نویسی مورد نظر خودتون اونو فراخوانی کنین !

  40. #80

    نقل قول: آموزش ارتباط با سخت افزار

    راجع به input های پارالل هم توضیح میدید ؟ این که چجوری کد هاش رو بنویسم و ولتاژ مجازش چقدر هست؟

صفحه 2 از 3 اولاول 123 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •