اطلاعیه

Collapse
No announcement yet.

دستور سویچ

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دستور سویچ

    سلام
    من ی برنامه نوشتم با دستور سویچ بریک اما ارو میده



    http://uupload.ir/files/829t_untitled.jpg




    کد:
       /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.05.0 Evaluation
    Automatic Program Generator
    © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 08/14/2015
    Author : Freeware, for evaluation and non-commercial use only
    Company : 
    Comments: 
    
    
    Chip type        : ATmega32
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 512
    *****************************************************/
    
    #include <mega32.h>
    #include <delay.h>
    #include <stdio.h>
    // Declare your global variables here
    #define ml1 PINC.4
    #define ml2 PINC.5
    #define mr1 PINC.6
    #define mr2 PINC.7
    #define sen1 PIND.2
    #define sen2 PIND.3
    #define sen3 PIND.4
    #define sen4 PIND.5
    #define sen5 PIND.6
    #define sen6 PIND.7
    #define sen7 PINC.0
    #define sen8 PINC.1
    #define sen9 PINC.2
    #define sen10 PINC.3
     void move (unsigned char dir); {
             
    // Declare your global variables here
        
    void main(void)
    {
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTA=0x00;
    DDRA=0x00;
    
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=P State3=T State2=P State1=T State0=T 
    PORTB=0x14;
    DDRB=0x00;
    
    // Port C initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In 
    // State7=1 State6=1 State5=1 State4=1 State3=P State2=P State1=P State0=P 
    PORTC=0xFF;
    DDRC=0xF0;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=P State6=P State5=P State4=P State3=P State2=P State1=T State0=T 
    PORTD=0xFC;
    DDRD=0x00;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=0xFF
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
    
    // USART initialization
    // USART disabled
    UCSRB=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;
    
    // SPI initialization
    // SPI disabled
    SPCR=0x00;
    
    // TWI initialization
    // TWI disabled
    TWCR=0x00;
    move('s');
    while (1)
       {
          if((sen5==1) || (sen6==1))
        {
        move('f');
        }
       if((sen1==1) || (sen2==1))
        {
        move('c');
        }      
       if((sen3==1))
        {
        move('l');
        }      
       if((sen6==1))
        {
        move('r');
        }
       if((sen9==1) || (sen10==1))
        {
        move('u');
        }
       if(sen1==0 || sen2==0 || sen3==0 || sen4==0 || sen5==0 || sen6==0 || sen7==0 || sen8==0 || sen9==0 || sen10==0)
        move('f');
        delay_ms(20);
       }
    
       void move (unsigned char dir)
      {
      switch (dir)
        {
        case 'f': 
          mr1=0;
          mr2=1;
          ml1=1;
          ml2=0;    
        break;
        case 'u' :
          mr1=1;
          mr2=0;
          ml1=1;
          ml2=0;    
        break;
        case 'c' :
          mr1=0;
          mr2=1;
          ml1=0;
          ml2=1;    
        break;
        case 's' :
          mr1=0;
          mr2=0;
          ml1=0;
          ml2=0;   
        break;
        case 'r' :
          mr1=1;
          mr2=0;
          ml1=0;
          ml2=0;
        break;
        case 'l' :
          mr1=0;
          mr2=1;
          ml1=1;
          ml2=0;    
        break;
         }
    
      }
        
                  
             }
      }
    هر اقدام بزرگی ابتدا محال به نظر میرسد

    #2
    پاسخ : دستور سویچ


    #include <mega32.h>
    #include <delay.h>
    #include <stdio.h>

    #define sen1 PIND.2
    #define sen2 PIND.3
    #define sen3 PIND.4
    #define sen4 PIND.5
    #define sen5 PIND.6
    #define sen6 PIND.7

    #define sen7 PINC.0
    #define sen8 PINC.1
    #define sen9 PINC.2
    #define sen10 PINC.3

    #define ml1 PORTC.4
    #define ml2 PORTC.5
    #define mr1 PORTC.6
    #define mr2 PORTC.7

    void move (unsigned char dir)
    {
    switch (dir)
    {
    case 'f':
    mr1 = 0;
    mr2 = 1;
    ml1 = 1;
    ml2 = 0;
    return;
    case 'u' :
    mr1 = 1;
    mr2 = 0;
    ml1 = 1;
    ml2 = 0;
    return;
    case 'c' :
    mr1 = 0;
    mr2 = 1;
    ml1 = 0;
    ml2 = 1;
    return;
    case 's' :
    mr1 = 0;
    mr2 = 0;
    ml1 = 0;
    ml2 = 0;
    return;
    case 'r' :
    mr1 = 1;
    mr2 = 0;
    ml1 = 0;
    ml2 = 0;
    return;
    case 'l' :
    mr1 = 0;
    mr2 = 1;
    ml1 = 1;
    ml2 = 0;
    return;
    }
    }

    void main (void)
    {
    PORTB = 0x14;
    DDRB = 0x00;

    PORTC = 0xFF;
    DDRC = 0xF0;

    PORTD = 0xFC;
    DDRD = 0x00;

    move('s'

    while(1)
    {
    if((sen5 == 1) || (sen6 == 1))
    move('f'
    if((sen1 == 1) || (sen2 == 1))
    move('c'
    if((sen3 == 1))
    move('l'
    if((sen6 == 1))
    move('r'
    if((sen9 == 1) || (sen10 == 1))
    move('u'
    if(sen1 == 0 || sen2 == 0 || sen3 == 0 || sen4 == 0 || sen5 == 0 || sen6 == 0 || sen7 == 0 || sen8 == 0 || sen9 == 0 || sen10 == 0)
    move('f'

    delay_ms(20);
    }
    }
    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

    دیدگاه


      #3
      پاسخ : دستور سویچ

      با توجه به این که این موضوع بارها در انجمن مطرح شده و یا جهت ساماندهی انجمن AVR موضوع قفل میشود

      دیدگاه

      لطفا صبر کنید...
      X