اطلاعیه

Collapse
No announcement yet.

سوال در مورد استفاده از ADC میکرو ATtiny13

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

    #16
    پاسخ : سوال در مورد استفاده از ADC میکرو ATtiny13

    سلام
    دوست عزیز شما از اتمگا استفاده کن با تاینی نمیشه برنامه سنگین نوشت.من با تاینی دو تا ولتاژ رو می گیرم ولی اصلا از عملیات ریاضی استففاده نمی کنم چون حافشه رو بدجور اشغال می کنه

    دیدگاه


      #17
      پاسخ : سوال در مورد استفاده از ADC میکرو ATtiny13

      پیچیده رو بیخیال تو همون ساده ش موندیم .. الان از ADC چطور میشه استفاده کرد اون برنامه ای مه از نت برداشتم کجاش ایراد داره که ولتاژا رو دست تشخیص نمیده؟ :cry2:


      کد:
      #include <avr/io.h>
      
      void adc_setup (void)
      {
        // Set the ADC input to PB2/ADC1
        //ADMUX |= (1 << MUX0) ;
      	//ADMUX &= 0b11100000;
      	//ADMUX &= ~(1 << ADLAR);
      	//ADMUX |= (1 << REFS1) | (1 << REFS0);
      	
      	ADMUX = 0b11000000; //mux0:4 and ADLAR are 0 .. ref0:1 are 1
      
        // Set the prescaler to clock/128 & enable ADC
        ADCSRA |= (1 << ADPS2) | (1 << ADPS1)  | (1 << ADPS0) | (1 << ADEN);
      }
      
      int adc_read (void)
      {
      	int ret;
      
        // Start the conversion
        ADCSRA |= (1 << ADSC);
      
        // Wait for it to finish
        while (ADCSRA & (1 << ADSC));
      	
      	ret=(int)ADCH;
      	ret=ret*256+(int)ADCL;
        return ret;
      }
       
      int main (void)
      {
      	float v=0;
      	
      	DDRB = 0b00000001;
        adc_setup();
        
        while (1)
      	{
          v = adc_read()*0.001074;
      
      		if(v>0.5)
      			PORTB = 0b00000001;
      		else
      			PORTB = 0b00000000;
        }
      }
      زندگی پر ز وجود است ولی ..
      ما چه را می خواهیم چه را می جوییم که لب چشمه ی امید اینچنین نا امیدانه به سرابی تلخ مینگریم...

      دیدگاه

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