|
به نظر می رسد که شما عضو سایت نیستید و یا وارد نشده اید, امکان ارسال مطلب و دانلود فایل و همچنین دسترسی به انجمن هایی که فقط اعضا ثبت نام شده امکان دسترسی به آن را دارند از امتیازات ثبت نام در سایت میباشد. لطفا از طریق این لینک برای ثبت نام اقدام نمایید. |
|
| جدیدترین موضوعات انجمنها | |
|
|
||||||||
![]() |
|
|
LinkBack | ابزارهای موضوع | نحوه نمایش |
|
|
#1 | |||||||||
|
كاربر سايت
![]() تاریخ عضویت: Aug 2009 محل سکونت: اصفهان نوشتهها: 31
تشكرها: 7
11 بار تشكر شده در 7 پست
درجه: 4 [ ![]() ![]() ]سابقه: 0 / 82 ![]() |
سلام.یه برنامهsrf02 میخواستم.میشه یه نمونه اش رو بذارید!
__________________
در آغاز هیچ نبود ،فقط یک کلمه بود و آن کلمه "خدا" بود! |
|||||||||
|
|
|
|
|
#2 |
|
مدیر بخش
![]() |
سلام...
به چه زبانی ؟ با چه کامپایلری ؟ با چه میکرویی؟
__________________
We fight through the hurt ... And we live and we learn ...
And we Try and Try And Try saeebrobotic.blogfa.com ________________________ We Are OpenSource |
|
|
|
|
|
#3 |
|
مدیر بخش
![]() |
سلام...
به چه زبانی ؟ با چه کامپایلری ؟ با چه میکرویی؟
__________________
We fight through the hurt ... And we live and we learn ...
And we Try and Try And Try saeebrobotic.blogfa.com ________________________ We Are OpenSource |
|
|
|
|
|
#4 | |||||||||
|
كاربر سايت
![]() تاریخ عضویت: Aug 2009 محل سکونت: اصفهان نوشتهها: 31
تشكرها: 7
11 بار تشكر شده در 7 پست
درجه: 4 [ ![]() ![]() ]سابقه: 0 / 82 ![]() |
سی- کدویژن ای وی ار-atmege128
__________________
در آغاز هیچ نبود ،فقط یک کلمه بود و آن کلمه "خدا" بود! |
|||||||||
|
|
|
|
|
#5 |
|
كاربر سايت
![]() |
فقط مهم بود این سوالات بشه واسه باقیش کسی نیست.
|
|
|
|
|
|
#6 |
|
مدير ارشد
![]() |
خوب حالا چرا ناراحت می شید.
برای خواندن قطعاتی نظیر SRFxx یا CMPS03 که با پروتکل i2c کار می کنند .همانطور که در برگه ی اطلا عاتی آنان ذکر شده است.باید مانند خواندن از حافظه ها سری 24xxx عمل کرد. برای این منظور دو روش در میکروکنترلر های AVR پیشنهاد می گردد. 1- روش نرم افزاری :در این روش شما می توانید قطعه را به هر پایه ی میکرو را که خواستید متصل کنید.در این روش CPU درگیر خواندن اطلا عات می گردد.کد زیر که از help codevision avr گرفته شده برای این منظور استفاده می گردد. کد:
/* read a byte from the EEPROM */
unsigned char eeprom_read(unsigned char address) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}
/* write a byte to the EEPROM */
void eeprom_write(unsigned char address, unsigned char data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_write(data);
i2c_stop();
/* 10ms delay to complete the write operation */
delay_ms(10);
}
2-روش سخت افزاری. در این روش CPU درگیر دریافت اطلاعات نمی شود.و واحد TWI مسئول دریافت اطلا عات می شود.کد زیر که از سایت Atmel دریافت شده جهت این کار استفاده میگردد.در این روش حتما قطعه باید به پایه های مربوط به واحدTWI در میکرو متصل گردد. کد:
unsigned long int i2cread(char address, char reg)
{
unsigned long int read_data = 0;
TWCR = 0xA4; // send a start bit on i2c bus
while(!(TWCR & 0x80)); // wait for confirmation of transmit
TWDR = address; // load address of i2c device
TWCR = 0x84; // transmit
while(!(TWCR & 0x80)); // wait for confirmation of transmit
TWDR = reg; // send register number to read from
TWCR = 0x84; // transmit
while(!(TWCR & 0x80)); // wait for confirmation of transmit
TWCR = 0xA4; // send repeated start bit
while(!(TWCR & 0x80)); // wait for confirmation of transmit
TWDR = address+1; // transmit address of i2c device with readbit set
TWCR = 0xC4; // clear transmit interupt flag
while(!(TWCR & 0x80)); // wait for confirmation of transmit
TWCR = 0x84; // transmit, nack (last byte request)
while(!(TWCR & 0x80)); // wait for confirmation of transmit
read_data = TWDR; // and grab the target data
TWCR = 0x94; // send a stop bit on i2c bus
return read_data;
}
__________________
معشوق من چنان لطیف است که خود را به بودن نیالوده است...
|
|
|
|
| 3 کاربر از emami به خاطر این مطلب مفید تشکر کرده اند |
|
|
#7 |
|
مدیر بخش
![]() |
سلام...
برنامه ي زير از آدرس 0xE0 كه Hآدرس پيشفرض srf ها و قابل تغيير است اطلاعات را ارسال و دريافت ميكنه... اين تابع بيشتر جنبه ي آموزشي داره و مي تونه خيلي بهينه تر هم باشه.. کد PHP:
__________________
We fight through the hurt ... And we live and we learn ...
And we Try and Try And Try saeebrobotic.blogfa.com ________________________ We Are OpenSource |
|
|
|
|
|
#8 |
|
كاربر سايت
![]() |
این هم با بسکام:
کد:
$regfile = "m16def.dat" کد:
|
|
|
|
| اين کاربران از alime به خاطر این مطلب مفید تشکر کرده اند |
|
|
#9 |
|
كاربر سايت
![]() |
آقای نصر من نتونستم با این برنامه ای که نوشتید از srf02 با کدویژن جواب بگیرم. ممنون میشم کمکم کنید.......
ببخشید همین الان جواب داد ، ممنونم چطور میتونم بهینش کنم؟ ویرایش توسط alime : 12-08-2011 در ساعت 02:31 PM. |
|
|
|
|
|
#10 |
|
مدیر بخش
![]() |
اون زمان 65 میلی ثانیه را با استفاده از تایمر ایجاد کنید
__________________
We fight through the hurt ... And we live and we learn ...
And we Try and Try And Try saeebrobotic.blogfa.com ________________________ We Are OpenSource |
|
|
|
![]() |
| علاقه مندی ها (Bookmarks) |
| ابزارهای موضوع | |
| نحوه نمایش | |
|
موضوعات مشابه for: نحوه خواندن srf02 با میکروکنترلر AVR
|
||||
| موضوع | نویسنده موضوع | انجمن | پاسخ ها | آخرين نوشته |
| سوال فاصله سنح با avr با SRF02 | hamidhamid | AVR | 7 | 03-08-2012 04:14 PM |