اطلاعیه

Collapse
No announcement yet.

ممنون میشم کسی این برنامه به زبان c رو ترجمه کنه خیلی فوریه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ممنون میشم کسی این برنامه به زبان c رو ترجمه کنه خیلی فوریه

    سلام
    کسی هست که این برنامه رو خط به خط معنی کنه خیلی فوری و ضروریه ممنون میشم
    باور کنید وقتی نمونده فقط میخوام معنی هر خط برنامه رو بدونم که چی به چیه
    ممنون میشم

    #
    [list type=decimal]
    [li]
    • [li]
      include <mega16.h>
      #include <delay.h>
      long int set_timer=0; // External Interrupt 0 service routine
      interrupt [EXT_INT0] void ext_int0_isr(void)
      {
      // Timer/Counter 1 initialization
      TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
      TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
      TCNT1H=(0xD8F0+set_timer) >> 8;
      TCNT1L=(0xD8F0+set_timer) & 0xff;

      }

      // Timer 0 overflow interrupt service routine
      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
      {
      // Timer/Counter 0 initialization off
      TCCR0=0;
      TCNT0=0;
      OCR0=0;
      //--------------------------------------
      PORTD.5=0;
      }

      // Timer1 overflow interrupt service routine
      interrupt [TIM1_OVF] void timer1_ovf_isr(void)
      {
      // Timer/Counter 0 initialization
      // Clock source: System Clock
      // Clock value: 1000.000 kHz
      // Mode: Normal top=0xFF
      // OC0 output: Disconnected
      // Timer Period: 0.05 ms
      TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (1<<CS01) | (0<<CS00);
      TCNT0=0xCE;
      OCR0=0x00;
      //------------------------------------
      PORTD.5=1;
      //------------------------------------
      // Timer/Counter 1 initialization off
      TCCR1A=0;
      TCCR1B=0;
      TCNT1H=0;
      TCNT1L=0;
      }

      // Voltage Reference: Int., cap. on AREF
      #define ADC_VREF_TYPE ((1<<REFS1) | (1<<REFS0) | (0<<ADLAR))

      // Read the AD conversion result
      unsigned int read_adc(unsigned char adc_input)
      {
      ADMUX=adc_input | ADC_VREF_TYPE;
      // Delay needed for the stabilization of the ADC input voltage
      delay_us(10);
      // Start the AD conversion
      ADCSRA|=(1<<ADSC);
      // Wait for the AD conversion to complete
      while ((ADCSRA & (1<<ADIF))==0);
      ADCSRA|=(1<<ADIF);
      return ADCW;
      }

      void main(void)
      {
      // Declare your local variables here
      int i,sum,temp,adc;
      // Input/Output Ports initialization
      // Port A initialization
      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
      DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
      PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

      // Port B initialization
      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
      DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
      PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

      // Port C initialization
      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
      DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
      PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

      // Port D initialization
      // Function: Bit7=In Bit6=In Bit5=Out Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
      DDRD=(0<<DDD7) | (0<<DDD6) | (1<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
      // State: Bit7=T Bit6=T Bit5=0 Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
      PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);



      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (1<<TOIE1) | (0<<OCIE0) | (1<<TOIE0);

      // External Interrupt(s) initialization
      // INT0: On
      // INT0 Mode: Rising Edge
      // INT1: Off
      // INT2: Off
      GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);
      MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (1<<ISC00);
      MCUCSR=(0<<ISC2);
      GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);

      // ADC initialization
      // ADC Clock frequency: 1000.000 kHz
      // ADC Voltage Reference: Int., cap. on AREF
      // ADC Auto Trigger Source: ADC Stopped
      ADMUX=ADC_VREF_TYPE;
      ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
      SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);



      while (1)
      {
      sum=0;
      for(i=0;i<50;i++)
      {
      adc=read_adc(0);
      sum=adc+sum;
      }
      adc=sum/50.0;
      temp=adc*0.25025025;



      if(temp<=10)
      {
      #asm("sei&quot
      set_timer=9900;
      }
      else if(temp>=100)
      {
      #asm("cli&quot
      }
      else
      {
      #asm("sei&quot
      set_timer=9999-(temp*(9999/110.0));
      }

      delay_ms(2000);
      }
      }
      [/li]
      [li][/li]
    [/li]
    [li][/li][/list]
    مهم نیست که چه مدرکی دارید ، مهم این است که چه درکی دارید ...
لطفا صبر کنید...
X