NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4397 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 9 از 9

موضوع: راه اندازی srf02 در بسکام و کدویژن بروش I2C

  1. #1
    کاربر علاقه مند amiraliforoozandeh آواتار ها
    تاریخ عضویت
    Feb 2009
    نوشته ها
    76
    تشکر
    14
    تشکر شده 59 بار در 26 پست

    پیش فرض راه اندازی srf02 در بسکام و کدویژن بروش I2C

    سلام
    این سورس راه اندازی سنسور SRF02 در بسکامه خودم تست کردم جواب گرفتم

    کد:
    $regfile = "m32def.dat"
    $crystal = 800000
    Config Lcdpin = Pin , Rs = Porta.0 , E = Portb.1 , Db4 = Portb.2 ,_
     Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
    Config Lcd = 16 * 2
    Config Sda = Portc.0
    Config Scl = Portc.1
    Dim X As Integer , Y As Integer , Z As Word
    Cursor Off
    Do
    I2cstart
    I2cwbyte &HE0
    I2cwbyte &H00
    I2cwbyte &H51
    I2cstop
    I2cstart
    I2cwbyte &HE0
    I2cwbyte &H02
    I2creceive &HE0 , X
    I2cstop
    I2cstart
    I2cwbyte &H03
    I2creceive &HE0 , Y
    I2cstop
    Cls
    Z = X * 256
    Z = Z + Y
    Waitms 200
    Lcd Z
    Waitms 800
    Loop
    خوب حالا من میخواستم اونو تو کدویژن راه بندازم ولی خروجی رو یک عدد ثابت نشون میده کسی میتونه منو کمک کنه یا سورس رو تبدیل کنه؟
    سورسی که خودم تبدیل کردم اینه :
    کد:
    #include <mega32.h>
    #include <stdio.h>
    #include <delay.h>
    // I2C Bus functions
    #asm
       .equ __i2c_port=0x15 ;PORTC
       .equ __sda_bit=0
       .equ __scl_bit=1
    #endasm
    #include <i2c.h>
    // Alphanumeric LCD Module functions
    #include <alcd.h>
    // Declare your global variables here
    void main(void)
    {
    // Declare your local variables here
    unsigned char str[20]="";
    unsigned char x,y ;
    unsigned char z ;
    // 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=T State3=T State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0x00;
    // Port C 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 
    PORTC=0x00;
    DDRC=0x00;
    // Port D 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 
    PORTD=0x00;
    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;
    // I2C Bus initialization
    i2c_init();
    // Alphanumeric LCD initialization
    // Connections specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTA Bit 0
    // RD - PORTA Bit 1
    // EN - PORTB Bit 1
    // D4 - PORTB Bit 2
    // D5 - PORTB Bit 3
    // D6 - PORTB Bit 4
    // D7 - PORTB Bit 5
    // Characters/line: 20
    lcd_init(20);
    while (1)
          {
          delay_ms(50);
          i2c_start();
          i2c_write(0xE0);
          i2c_write(0x00);
          i2c_write(0x51);
          i2c_stop(); 
          i2c_start();   
          i2c_write(0xE0);
          i2c_write(0x02);
          x=i2c_read(0);  
          i2c_stop(); 
          i2c_start(); 
          i2c_write(0x03); 
          y=i2c_read(0);
          i2c_stop();
          z = x * 256;
          z = z + y;
          delay_ms(60);
          lcd_clear();
          sprintf(str,"%u",z);
          lcd_puts(str);
          delay_ms(60);
     
          }
    }

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    تازه وارد
    تاریخ عضویت
    Jun 2011
    نوشته ها
    3
    تشکر
    0
    تشکر شده 2 بار در 1 پست

    پیش فرض

    مشکل ماله int هست double بزار درست میشه
    چون unsigned int تا 65535 بیشتر نمیده
    تو هلپ کدویژن نگاه کن

  5. کاربران : 2 تشکر کرده اند از شما ARMY1995 برای ارسال این پست سودمند:


  6. #3
    کاربر علاقه مند amiraliforoozandeh آواتار ها
    تاریخ عضویت
    Feb 2009
    نوشته ها
    76
    تشکر
    14
    تشکر شده 59 بار در 26 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ARMY1995 نمایش پست ها
    مشکل ماله int هست double بزار درست میشه
    چون unsigned int تا 65535 بیشتر نمیده
    تو هلپ کدویژن نگاه کن
    تست کردم ولی باز همونطوری میشه البته کدویژن میگه نمیتونی از double استفاده کنی (به خاطر ورژن) مجبورم از float استفاده کنم.
    احتمالا مال همون نوع متغییر هست ولی از چه نوعی باید باشه؟
    آخه led پشت srf چشمک میزنه (به معنی خواندن اطلاعات ماژول)

  7. #4
    کاربر فعال abbasalifix آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    عباسعلی محمدنیا
    نوشته ها
    187
    تشکر
    266
    تشکر شده 139 بار در 80 پست

    پیش فرض

    سلام
    برنامه بیسیکش هم همین جوریه میشه یه توضیح درمورد برنامه بذارید؟

  8. #5
    مدیر انجمن cmuiran آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    پیمان غلامی
    نوشته ها
    1,071
    تشکر
    407
    تشکر شده 966 بار در 553 پست

    پیش فرض

    نقل قول نوشته اصلی توسط abbasalifix نمایش پست ها
    سلام
    برنامه بیسیکش هم همین جوریه میشه یه توضیح درمورد برنامه بذارید؟
    سلام
    این سنسور هم i2c دارد هم ttl داخل دیتاشت تمام اطلاعات هست که چطور باهاش ارتباط برقرار کنی

  9. #6
    کاربر علاقه مند crashbandicoo آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    34
    تشکر
    35
    تشکر شده 95 بار در 20 پست

    پیش فرض

    من هم همین مشکل رو دارم . با codevision که با srf02 کار می کنم خروجی همش ثابته !
    کسی می تونه کمک کنه لطفا ؟

  10. #7
    کاربر علاقه مند crashbandicoo آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    34
    تشکر
    35
    تشکر شده 95 بار در 20 پست

    پیش فرض

    من هم همین مشکل رو دارم . با codevision که با srf02 کار می کنم خروجی همش ثابته !
    کسی می تونه کمک کنه لطفا ؟

  11. #8
    کاربر علاقه مند amiraliforoozandeh آواتار ها
    تاریخ عضویت
    Feb 2009
    نوشته ها
    76
    تشکر
    14
    تشکر شده 59 بار در 26 پست

    پیش فرض

    اینجا رو ببین همه چی روشنه دیگه برنامه نیازی به توضیح نداره.
    SRF02 Ultra sonic range finder

  12. تشکرها از این نوشته :


  13. #9
    کاربر علاقه مند amiraliforoozandeh آواتار ها
    تاریخ عضویت
    Feb 2009
    نوشته ها
    76
    تشکر
    14
    تشکر شده 59 بار در 26 پست

    پیش فرض

    نقل قول نوشته اصلی توسط amiraliforoozandeh نمایش پست ها
    اینجا رو ببین همه چی روشنه دیگه برنامه نیازی به توضیح نداره.
    SRF02 Ultra sonic range finder
    ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - کمک در راه‏اندازی srf02

موضوعات مشابه

  1. راه اندازی سنسور رطوبت sht1x در کدویژن + کتاب خانه
    توسط roohlla در انجمن ماژول ها و دستگاه های مخابراتی
    پاسخ: 27
    آخرين نوشته: 24-09-2017, 08:31
  2. کمک در راه‏اندازی srf02
    توسط medadnoki در انجمن سنسور و ماژول های اندازه گیری
    پاسخ: 22
    آخرين نوشته: 27-06-2013, 13:07
  3. پاسخ: 10
    آخرين نوشته: 15-09-2012, 14:28
  4. مشکل با سنسور srf02
    توسط Ma3ood در انجمن AVR
    پاسخ: 3
    آخرين نوشته: 29-02-2012, 12:28
  5. پاسخ: 4
    آخرين نوشته: 14-10-2011, 14:43

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •