NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3234 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 3 از 3

موضوع: نوشتن تابعی با 3 ورودی برای راه اندازی استپ موتور

  1. #1
    تازه وارد
    تاریخ عضویت
    Jun 2015
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    Icon16 نوشتن تابعی با 3 ورودی برای راه اندازی استپ موتور

    سلام به همگی
    نماز و روزهاتون قبول
    دوستان من میخوام واسه 2 استپ موتور تو codevision ی برنامه بنویسم (یکی از اسپت ها حرکت به جلو و عقب و دیگری بالا و پایین)
    این برنامه به این صورته که کاربر از طریق ال سی دی و کیبورد 3 داده به میکرو میده و موتور از طریق این 3 داده باید 2 موتور شروع به چرخش کنند
    در وقع من در این جا 6 ایستگاه دارم که (آب.خشک کن.محلول اول.محلول دوم.محلول سوم.محلول چهارم)...شروع کار از خشک کن صورت میگیره
    اولین سوالی که از کاربر میشه: شماره ی ایستگاههایی که میخوای بری رو به ترتیب بزن؟.....(در اینجا کاربر مختاره که از 1 تا 4 را انتخاب کند،مثلا 1،4،3،2....این یعنی اول 1 بعد 4 بعد 3 و بعد 2 و در آخر هر مرحله خودکار باید به سمت آب و سپس خشک کن برود و بالای خشک کن انتهای برنامه میشود)
    سوال دوم:چند بار در هر محلول بالا و پایین شود؟....(در اینجا از کاربر این سوال به این منظور پرسیده میشود که ممکنه کاربر بخواهد در یک ایستگاه تعداد بیشتری بالا و پایین رود...در اینجا اگر کاربر 0 را وارد کند اصلا وارد محلول نشود و از آن عبور کند)
    سوال سوم:مدت زمان ایست در بالای هر ایستگاه چقدر باشد؟....(یعنی پس از اینکه بالا و پایین شدن در هر ایستگاه به اتمام رسید چقدر مکث داشته باشد و سپس ادامه دهد)

    وقتی سوالات تموم شد حالا باید میکرو 32 این دو استپ را طبق اطلاعاتی که گرفته هدایت کند
    حالا من میخوام با نوشتن ی تابع با سه ورودی بالا این دو استپ موتور شروع به هدایت کنند،چجوری بنویسم این تابع رو؟؟؟؟؟؟؟؟؟؟ لطفا کمک کنید
    کدهایی که واسه 3 تا سوال نوشتم در پایین میذارمشون...

    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    Object moved


    Project :
    Version :
    Date : 6/15/2015
    Author : Diplomat
    Company :
    Comments:




    Chip type : ATmega32A
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 512
    ************************************************** ***/
    #include <mega32a.h>
    #include <alcd.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <delay.h>
    #define b1 PINB.4
    #define b2 PINB.5
    #define b3 PINB.6
    #define b4 PINB.7


    unsigned char scan[4]={0XFE,0XFD,0XFB,0XF7};
    unsigned char arrkey[16]={
    1,2,3,20,
    4,5,6,30,
    7,8,9,40,
    70,0,80,90};
    char key;


    unsigned char keypad(void);
    void Display_LCD_Start(void);
    void Display_LCD_1(char ,char ,char ,char);
    void Display_LCD_2(char ,char ,char ,char);
    void Display_LCD_3(char ,char ,char ,char);
    void main(void)
    {
    char key;
    int a[12],b[12],c[12],i;
    PORTA=0x00;
    DDRA=0x00;


    PORTB=0xff;
    DDRB=0x0f;


    PORTC=0x00;
    DDRC=0xff;


    PORTD=0x00;
    DDRD=0xff;


    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTA Bit 0
    // RD - PORTA Bit 1
    // EN - PORTA Bit 2
    // D4 - PORTA Bit 4
    // D5 - PORTA Bit 5
    // D6 - PORTA Bit 6
    // D7 - PORTA Bit 7
    // Characters/line: 20
    lcd_init(20);


    while (1)
    {
    Display_LCD_Start();
    key=keypad();
    if(key==1) //start
    {
    lcd_clear();
    lcd_putsf("Number Of Stations:");//tartibe stepha
    for(i=0;i<4;i++)
    {a[i]=keypad();}
    Display_LCD_1(a[0],a[1],a[2],a[3]);
    lcd_gotoxy(0,2);
    lcd_putsf("CountSeesaw:");//tedad bala va paiin dar har step
    for(i=4;i<8;i++)
    {b[i]=keypad();}
    Display_LCD_2(b[4],b[5],b[6],b[7]);
    lcd_gotoxy(0,3);
    lcd_putsf("Time Spent:");//zamane mandan dar balaye har step
    for(i=8;i<12;i++)
    {c[i]=keypad();}
    Display_LCD_3(c[8],c[9],c[10],c[11]);





    }//End Start
    }//End While
    }




    //************************************************** ******
    unsigned char keypad(void)
    {
    unsigned char r,b;
    while(1)
    {
    for (r=0; r<4; r++)
    {
    b=4;
    PORTB=scan[r];
    if(b1==0) b=0;
    if(b2==0) b=1;
    if(b3==0) b=2;
    if(b4==0) b=3;
    if (!(b==4))
    {
    key=arrkey[(r*4)+b];
    while(b1==0);
    while(b2==0);
    while(b3==0);
    while(b4==0);
    delay_ms(50);
    return key;
    }
    }
    }
    }
    //************************************************** ******
    void Display_LCD_Start(void)
    {
    lcd_clear();
    lcd_gotoxy(0,1);
    lcd_putsf(" POLY STAINER ");
    lcd_gotoxy(0,2);
    lcd_putsf(" Prepare To Start ");
    }
    //************************************************** ******
    void Display_LCD_1(char x1,char x2,char x3,char x4)
    {
    int j;
    char buffer[20],x[12];
    lcd_gotoxy(13,1);
    for(j=1;j<5;j++)
    {
    itoa(x[j],buffer);
    lcd_puts(buffer);
    lcd_putsf(",");
    }
    }
    //************************************************** ******
    void Display_LCD_2(char y1,char y2,char y3,char y4)
    {
    int j;
    char buffer[20],y[12];
    lcd_gotoxy(13,2);
    for(j=1;j<5;j++)
    {
    itoa(y[j],buffer);
    lcd_puts(buffer);
    lcd_putsf(",");
    }
    }
    //************************************************** ******
    void Display_LCD_3(char z1,char z2,char z3,char z4)
    {
    int j;
    char buffer[20],z[12];
    lcd_gotoxy(13,3);
    for(j=1;j<5;j++)
    {
    itoa(z[j],buffer);
    lcd_puts(buffer);
    lcd_putsf(",");
    }
    }
    //************************************************** ******

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر دائمی
    تاریخ عضویت
    Jun 2009
    نام
    روح الله خرم بخت
    نوشته ها
    403
    تشکر
    456
    تشکر شده 591 بار در 214 پست

    پیش فرض

    باید از آرایه به عنوان ورودی استفاده کنی

  4. #3
    تازه وارد
    تاریخ عضویت
    Jun 2015
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

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



    چجوری؟ لطفا کمکم کنید

موضوعات مشابه

  1. [درخواست] کمک در راه اندازی استپ موتور
    توسط zarish در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 15-04-2015, 09:01
  2. پاسخ: 1
    آخرين نوشته: 08-09-2014, 15:29
  3. پاسخ: 0
    آخرين نوشته: 07-09-2014, 18:02
  4. کمک فوری برای راه اندازی سه استپ موتور
    توسط scapa در انجمن موتورها و درایوها
    پاسخ: 4
    آخرين نوشته: 31-03-2014, 23:21
  5. راه اندازی استپ موتور hibrid
    توسط fahime87 در انجمن سایر موارد مرتبط با میکرو کنترلرها
    پاسخ: 2
    آخرين نوشته: 13-02-2013, 10:19

مجوز های ارسال و ویرایش

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