اطلاعیه

Collapse
No announcement yet.

مشکل در راه اندازی تاچ

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

    مشکل در راه اندازی تاچ

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

    کد:
    #include <mega16a.h>
    #include <stdlib.h>
    #include <delay.h>
    #include <alcd.h>
    unsigned int x,y;
    unsigned char x1[32],y1[32],j;
    unsigned int adc_data;
    #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))
    interrupt [ADC_INT] void adc_isr(void)
    {
    adc_data=ADCW;
    }
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | ADC_VREF_TYPE;
    delay_us(10);
    #asm
      in  r30,mcucr
      cbr r30,__sm_mask
      sbr r30,__se_bit | __sm_adc_noise_red
      out mcucr,r30
      sleep
      cbr r30,__se_bit
      out mcucr,r30
    #endasm
    return adc_data;
    }
    unsigned int xpos (void)
    {
    unsigned int i=0,l=0;
    DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (1<<DDA3) | (0<<DDA2) | (1<<DDA1) | (0<<DDA0);
    PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (1<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
    for(j=1;j<11;j++)
      {
      l=read_adc(2);
      delay_ms(5);
      i=(i+l)/j;
      }   
    return i;
    }
    unsigned int ypos (void)
    {
    unsigned int q=0,w=0;
    DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (1<<DDA2) | (0<<DDA1) | (1<<DDA0);
    PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (1<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
    for(j=1;j<11;j++)
      {
      q=read_adc(3);
      delay_ms(5);
      w=(w+q)/j;
      } 
    return w;
    }
    void main(void)
    {
    
    ACSR=(1<<ACD);
    // ADC initialization
    // ADC Clock frequency: 62.500 kHz
    // ADC Voltage Reference: AVCC pin
    // ADC Auto Trigger Source: ADC Stopped
    ADMUX=ADC_VREF_TYPE;
    ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
    SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
    lcd_init(16);
    #asm("sei")
    while (1)
       {  
       lcd_clear();
       x=xpos();
       y=ypos();
       itoa(x,x1);
       itoa(y,y1);
       lcd_gotoxy(0,0);
       lcd_puts(x1);
       lcd_gotoxy(0,1);
       lcd_puts(y1);
       delay_ms(250);
       }
    }
    [/quote]
    و شماتیک هم بصورت زیر می باشد :


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

    راستی من با اهم متر مقاومت بین X- و X+ رو گرفتم حدود 400 اهم بود
    و بین Y_ و Y+ حدود 500 اهم بود
    در حالت عادی که هیچ نقطه ای رو تاچ نکردیم اینها نباید بی نهایت باشن؟؟
  • ۶۲٬۸۰۰ ریال ۴۷٬۱۰۰ ریال
    ۲۰۸٬۰۰۰ ریال ۱۲۴٬۸۰۰ ریال
    ۸۲٬۰۰۰ ریال ۶۸٬۰۶۰ ریال
    ۹۲۱٬۰۰۰ ریال ۱۸۴٬۲۰۰ ریال
    ۲٬۱۶۳٬۰۰۰ ریال ۱٬۷۳۰٬۴۰۰ ریال
    ۲٬۵۴۰٬۰۰۰ ریال ۱٬۹۰۵٬۰۰۰ ریال
    ۸۵۳٬۰۰۰ ریال ۶۸۲٬۴۰۰ ریال
    ۳۲۸٬۰۰۰ ریال ۱۶۴٬۰۰۰ ریال

    #2
    پاسخ : مشکل در راه اندازی تاچ

    مشکلتون حل شد؟
    www.gam-co.blogsky.com

    دیدگاه


      #3
      پاسخ : مشکل در راه اندازی تاچ

      اره حل شدش. ممنون
      الان توی کالیبره کردنش موندم

      دیدگاه


        #4
        پاسخ : مشکل در راه اندازی تاچ

        پس لطفا بگید چیکار کردید؟ اگه ممکنه برنامتون رو هم قرار بدید.
        یکی از دوستان گفته بود از روش 9نقطه کالیبرش کرده. حالا روش 9 نقطه چیه نمیدونم!
        www.gam-co.blogsky.com

        دیدگاه


          #5
          پاسخ : مشکل در راه اندازی تاچ

          برنامه و شماتیک تو پست اول هستش
          برا من طبق اون داره کار می کنه

          دیدگاه


            #6
            پاسخ : مشکل در راه اندازی تاچ

            پس مشکلتون تو کجا بود؟
            www.gam-co.blogsky.com

            دیدگاه

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