امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
نویسنده پیام
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #1
تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
باسلام خدمت همه اساتید

من خیلی سعی کردم عدد اعشاریو توی eeprom ذخیره کنم ولی نشد که نشد و حتما باید اونو به unsigned char تبدیل کنم تا بشه ذخیره کردش و اینم میشه شامل تبدیل float به unsigned char و برعکسش .

توی تاپیک های مختلف گشتم و خب راه حل های زیادی هم پیشنهاد شده بود ولی من هرکدومو امتحان کردم یا کار نکرد یا خطا داد !

کم کم به این نتیجه رسیدم که بیام عدد اعشاریو بصورت دوتا عدد صحیح تفکیک نم ، یعنی یه عدد صحیح که قسمت صحیح عدد من هستش و قسمت اعشارشم بصورت یه عدد صحیح دیگه و در نهایت این دوتا عدد صحیح رو بصورت جداگانه توی دوتا متغیر eeprom ذخیره کنم . موقع خوندن هم بیام این دوتا عدد رو بخونم و به صورت یه عدد اعشاری درش بیارم .

بعنوان مثال : 3.14 رو به 3 و 14 تبدیل کنم و بعد این دوتارو جداگانه ذخیره کنم توی eeprom و بعدش 3 و 14 رو بخونم و تبدیلش کنم به 3.14

ولی نمیدونم اینو چطور توی کدویژن بنویسم چون من قبلا بیسیک کار میکردمو تازه اومدم کدویژن اگه ممکنه یکی برام یه مثال بزنه و توضیحش بده :-(

باتشکر
۲۲-اردیبهشت-۱۳۹۴, ۰۸:۱۷:۴۱
ارسال‌ها
پاسخ
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #2
RE: تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
یه راه بهتر به نظرم در آوردن بایت های اون عدده. یه همچین چیزی
کد php:
float a=3.1415;
unsigned char *p;
p=&a;
for(
int i=0;i<4;i++)
  
send(p[i]); 
از union هم میشه استفاده کرد.
کد php:
union aa{
float a;
uchar *p
}
... 

میزان رای دشمن است!
[تصویر:  cff100.png]
۲۵-اردیبهشت-۱۳۹۴, ۱۱:۲۷:۰۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, MicrowaveCO
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #3
RE: تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
(۲۲-اردیبهشت-۱۳۹۴, ۰۸:۱۷:۴۱)MicrowaveCO نوشته است: باسلام خدمت همه اساتید

من خیلی سعی کردم عدد اعشاریو توی eeprom ذخیره کنم ولی نشد که نشد و حتما باید اونو به unsigned char تبدیل کنم تا بشه ذخیره کردش و اینم میشه شامل تبدیل float به unsigned char و برعکسش .

توی تاپیک های مختلف گشتم و خب راه حل های زیادی هم پیشنهاد شده بود ولی من هرکدومو امتحان کردم یا کار نکرد یا خطا داد !

کم کم به این نتیجه رسیدم که بیام عدد اعشاریو بصورت دوتا عدد صحیح تفکیک نم ، یعنی یه عدد صحیح که قسمت صحیح عدد من هستش و قسمت اعشارشم بصورت یه عدد صحیح دیگه و در نهایت این دوتا عدد صحیح رو بصورت جداگانه توی دوتا متغیر eeprom ذخیره کنم . موقع خوندن هم بیام این دوتا عدد رو بخونم و به صورت یه عدد اعشاری درش بیارم .

بعنوان مثال : 3.14 رو به 3 و 14 تبدیل کنم و بعد این دوتارو جداگانه ذخیره کنم توی eeprom و بعدش 3 و 14 رو بخونم و تبدیلش کنم به 3.14

ولی نمیدونم اینو چطور توی کدویژن بنویسم چون من قبلا بیسیک کار میکردمو تازه اومدم کدویژن اگه ممکنه یکی برام یه مثال بزنه و توضیحش بده :-(

باتشکر

سلام.

حالت عادی چطوری استفاده می کنید که نمی شه؟!
کدهاتون رو لطفا بذارید، ببینم نحوه ی تعریف و استفاده تون به چه صورت بودهه ...

موفق باشید.

۲۵-اردیبهشت-۱۳۹۴, ۱۱:۴۷:۰۵
وب سایت ارسال‌ها
پاسخ
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #4
RE: تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
سلام

char a=0;
float b =1.1f;
;a=(char)b
a=char(b);
...

اینو امتحان کردم اما هیچ عکس العملی نشون نداد !

ftoa(float n,unsigned char decimal,char str)
اینم امتحان ردم ولی نمیدونم چرا مدام خطا میداد!
از این تاپیک : http://www.iranled.com/forum/thread-26554.html
من دنبال یه روشی هستم که باهاش بشه عدد اعشاریو توی eeprom داخلی میکرو ذخیره کرد
لطفا اگه ممکنه یه نمونه برنامه برام مثال بزنید که عدد اعشاریو ذخیره کنه و بشه دوبار از ش خواند
یا حداقل یه نمونه پروژه که اینکارو کرده بزارین که خودم باهاش سروکله بزنم ببینم چیکار کرده

چند هفته هستش که دارم باهاش سروکله میزنم اما نمیشه که نمیشه
کدای قبلیمو پاک کردم وگرنه میزاشتم ، هربار هرکدومو امتحان کردمو جواب نداد
لطفا یه مثال کامل بزنین چون توی اینترنتم گشتم انگار مشکل خیلیا هستش ولی هیچ مثال علی ازش پیدا نکردم

با تشکر
۲۵-اردیبهشت-۱۳۹۴, ۱۷:۵۵:۲۶
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #5
RE: تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
مهندس چرا لقمه رو دور سرت می چرخونی؟!

با این دستور یه متغییر از نوع eeprom تعریف می کنی، مقدار دهیش هم کردم:
کد php:
eeprom float test 1.1

بعد مثل یه متغییر عادی باهاش کار می کنی، همین!

اینم بریز رو میکرو که مطمئن بشی ...
کد php:
eeprom float test 1.1;
char buf[16];

main()
{
    if(
test == 1.1)
    {
        
test 3.14;
        
lcd_clear();
        
ftoa(test,2,buf);
        
lcd_puts(buf); 
        
delay_ms(3000);        
    }      
    while(
1)
    {
    
    }


اون لینک تاپیکی رو که در پستتون گذاشتید، مربوط به کست کردن تایپ های مختلف متغییر ها به هم هست ، ربطی به eeprom نداشت.

موفق باشید.

(آخرین ویرایش در این ارسال: ۲۶-اردیبهشت-۱۳۹۴, ۰۹:۲۴:۱۶، توسط sharin.)
۲۵-اردیبهشت-۱۳۹۴, ۱۸:۲۰:۰۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : MicrowaveCO
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #6
RE: تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
سلام

آقا واقعا در عجبم ! باورکن من اینو امتحان کرده بودم ولی جواب نمیداد ولی کد شما جواب داد !
شاید یجا یه نکته ریزیو رعایت نمیکردم ولی این که فوق العاده هستش نه نیازی به تبدیل داره نه کد اضافی و براحتی و مستقیما داره عدد اعشاریو ذخیره میکن . خداییش دمت کرد

خیلی خیلی لطف کردی ( راستی ، فقط یه اشتباه تایپی کوچولو داره که توی قسمت شرط برابر بودن تست مساوی با 1.1 باید دوتا مساوی باشه )
بازم خیلی خیلی ممنونم از کمکی که کردی بهم
۲۶-اردیبهشت-۱۳۹۴, ۰۸:۴۱:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : sharin
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #7
RE: تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM
نقل قول: فقط یه اشتباه تایپی کوچولو داره که توی قسمت شرط برابر بودن تست مساوی با 1.1 باید دوتا مساوی باشه
بله حق با شماست، اصلاحش کردم.
موفق باشی.

۲۶-اردیبهشت-۱۳۹۴, ۰۹:۲۵:۴۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : MicrowaveCO


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل با eeprom بسکام کمک sky_man847 2 4,380 ۱۲-مهر-۱۳۹۷, ۰۰:۴۷:۰۸
آخرین ارسال: lrn1380
  راه اندازی ماژول gy-955 با AVR و کدویژن hadikh73 6 7,689 ۰۴-شهریور-۱۳۹۷, ۱۲:۰۸:۲۱
آخرین ارسال: hadikh73
  ماژول pn532 و کدویژن AVR hadikh73 1 4,205 ۰۴-خرداد-۱۳۹۶, ۰۱:۲۱:۲۴
آخرین ارسال: babyy
  پیکربندی SPI نرم افزاری در کدویژن pedram032 2 3,661 ۱۷-دى-۱۳۹۵, ۲۲:۳۷:۱۴
آخرین ارسال: omid_phoenix
  کمک در برنامه nrf24 با کدویژن sniper-70 0 2,893 ۱۹-آبان-۱۳۹۵, ۰۰:۱۶:۱۵
آخرین ارسال: sniper-70
  سوال در مورد اتصال حافظه eeprom جانبی به میکرو SBRE77 9 10,467 ۰۷-مهر-۱۳۹۵, ۲۳:۳۱:۲۹
آخرین ارسال: omidrn
  EEPROM Series 24C08 electroavr 4 3,791 ۲۸-آبان-۱۳۹۴, ۲۳:۴۲:۳۸
آخرین ارسال: sharin
Exclamation مشکل با eeprom های سریال bigbig 4 5,340 ۲۸-آبان-۱۳۹۴, ۰۱:۱۸:۰۰
آخرین ارسال: gray
  ذخیره اعداد اعشاری در ایپرام namvar14 2 2,873 ۲۲-خرداد-۱۳۹۴, ۱۸:۳۷:۰۳
آخرین ارسال: namvar14
  کمک در تشخیص علت خطا در کدویژن alikiller990 2 3,821 ۱۰-خرداد-۱۳۹۴, ۱۸:۱۷:۳۰
آخرین ارسال: alikiller990

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS