سلام
من یه مشکلی داشتم و دارم با کامپسمون! کامپس ما(cmps03) به جای اینکه از 0 تا 255 بهمون عدد بده، از 190 تا 255 بهمون عدد میده (با I2C میخونم)
پایه های SDA و SCL درست متصل شدن، پین های 9 و 1 هم که به ترتیب مربوط به GNDو +5V هستن، رو هم وصل کردم، برای کالیبره کردن هم پین 6 رو به GND وصل میکنیم و کامپس رو میچرخونم
این هم تابع :
کد:
#define EEPROM_BUS_ADDRESS 0xc0
unsigned char compass_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;
}
این هم کدیه که تو حلقه ی while مینویسم:
کد:
c=compass_read(1);
delay_ms(10);
lcd_gotoxy(0,0);
lcd_putchar(((c/100)%10)+'0');
lcd_putchar(((c/10)%10)+'0');
lcd_putchar((c%10)+'0');
delay_ms(100);
با کامپایلر codevision AVR کار میکنم، برنامه ی تست کامپس هم همین دو قسمت رو داره که به پروجکت اضافه میکنم، اصلا کاری به الگوریتم های صاف کردن و صفر کردن هم ندارم تو این پروجکت
دیگه این که پروگرامرم mkII هستش و با AVR Studio پروگرام میکنم ( پروگرامر تو codevision کار نکرد)
و این که همین کامپس با همین 2 قطعه کد، و البته با همین ترتیب اتصال پین ها به میکرو و تغذیه روی یه برد دیگه کار کردو دقیقا 0 تا 255 رو برگردوند، چند تا چیز بین ما و اون تیم فرق میکرد یکی ورژن codevision! یکی پروگرامر که اگه اشتباه نکنم واسه اونا دلتا بود و تو همون codevision پروگرام میکردن، و میکرو و LCD!! و برد! که البته میکروی اون ها هم مثل ما ATmega16 بود و فیوز بیت هایی که پروگرام میکردن دقیقا فیوز بیت های ما بود، و در رابطه با برد هم دقیقا مثل ما پین های SCL و SDA رو به پین های B.0و B.1 وصل کرده بودن
راستی اون تیم از اسیلاتور خارجی استفاده کرده بود اما ما از اسیلاتور خود میکرو با فرکانس 4.000000
پین هایSCL و SDA رو با مقاومت های 1 کیلو پول آپ کردم، یادم نیست اون تیم هم این کارو کرده بود یا نه، گرچه من حتی بدون پول آپ کردن هم تست کردم اما نتیجه نگرفتم
به نظر شما مشکل چی میتونه باشه؟ باید پروگرامر عوض کنم؟ مشکل از ورژن کدویژنه؟!! یا به خاطر اسیلاتور خارجی؟!!
اگه بخوام اسیلاتور اضافه کنم، تو کدویزارد باید تنظیم خاصی انجام بدم؟!
اگه چیزی به ذهنتون نمیرسه، اگه بیش استاد یا هم تیمی هاتون، مشکل منو مطرح کنین ممنون میشم