اطلاعیه

Collapse
No announcement yet.

خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

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

    خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

    با سلام.
    من میخام با میکرو اتمگا 128، 2100 پالس با فرکانس 25 کیلو هرتز تولید کنم و سپس در هر لبه بالا رونده این فرکانس بیام ADC میکرو رو بخونم...
    کسی میدونه فقط با تایمر یک پالس درست میکنیم؟ این پالس چند تاست؟ فقط یدونه است؟ چطوری میتونم به سطح صفر و یک این پالس دست پیدا کنم؟

    من اومدم از مد FAST PWM تایمر یک استفاده کردم و پالس با فرکانس 25 کیلوهرتز را تولید کردم...حالا نمیدونم واسه اینکه این پالسها دقیقا 2100 باشد و در هر سطح های این فرکانسها ADC رو بخونم چی کار کنم؟
    برای 2100 تا بیام از حلقه for استفاده کنم مثلا بگم:
    کد:
      for(k=1; k<2100 ;k++)
               { 
               
                TCCR1A = (1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(0<<COM1C1)|(0<<COM1C0)|(1<<WGM11)|(0<<WGM10); 
                TCCR1B = (0<<ICNC1)  |(0<<ICES1) | (1<<WGM13) |(1<<WGM12 )|(0<<CS12 )|(0<<CS11 )|(1<<CS10 );    // N=1
                ICR1L = 99;  
                OCR1AL=ICR1L*0.5;}
    و بعدش بیام اینتراپت رو فعال کنم و توی اینتراپت ADC رو بخونم؟
    کد:
    interrupt [TIM1_OVF] void timer1_ovf_isr(void)
    {
     adc_value=read_adc(0);
    }
    کسی میتونه کمک کنه؟

    #2
    پاسخ : خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

    چنتا مورد
    1) مبدا شروع تولید 2100 پالس چیه؟ (دکمه ای فشار داده می شه ؟ اینتراتی فعال می شه؟)
    2) adc خودش می تونه با یکی از تایمر ها (لبه ی بالا رونده بود فک کنم به دیتا شیت مراجعه کنید.) تریگ بشه.
    3) توی شروع 2100 پالس می خواین adc رو بخونین یا توی هر پالس؟

    دیدگاه


      #3
      پاسخ : خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

      ممنونم،
      1) مبداش یه کدی است که از طریق ویژوال بیسیک میاد و با دریافت کد از طریق میکرو، یعنی با دستور getchar و دریافت اون توسط میکرو، این 2100 پالس تولید بشن،
      2) میشه در مورد فعال شدن adc با یکی از تایمرها توضیح بدین؟ من از atmega128 استفاده میکنم.
      3) در هر کدوم از این 2100 پالس، یعنی من 2100 بار میخام adc رو بخونم.

      دیدگاه


        #4
        پاسخ : خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

        قسمت adc دیتاشیت رو بخونین

        دیدگاه


          #5
          پاسخ : خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

          کسی نمیدونه وقتی با تایمر میکرو یک فرکانسی رو تولید میکنیم یک شکل موج با اون فرکانس ساخته می شه یا بینهایت؟؟

          دیدگاه


            #6
            پاسخ : خوندن ADC میکرو atmega128 با سطح بالایی فرکانس

            نوشته اصلی توسط vahid_22002
            چنتا مورد

            2) adc خودش می تونه با یکی از تایمر ها (لبه ی بالا رونده بود فک کنم به دیتا شیت مراجعه کنید.) تریگ بشه.
            برای atmega32 این خصوصیت وجود داره و در رجیستری به نام SFIOR و با بیتهای ADTS2..0 میشه این کار رو انجام داد ولی atmega128 این رجیستر رو نداره.

            دیدگاه

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