ايران ويج

نسخه‌ی کامل: تبدیل کلمه به حروف
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان
توی زبان سی و کامپایلر keil چه جوری میشه یه کلمه مثلا ali رو به صورت حروف جدا جدا روی lcd نمایش داد
مثلا اول a رو نمایش داد بعد از چند ثانیه l  وبعد i
(۲۳-مرداد-۱۳۹۵, ۲۰:۱۷:۴۲)Mojtababm نوشته است: [ -> ]سلام دوستان
توی زبان سی و کامپایلر keil چه جوری میشه یه کلمه مثلا ali رو به صورت حروف جدا جدا روی lcd نمایش داد
مثلا اول a رو نمایش داد بعد از چند ثانیه l  وبعد i
دوستان کسی نیست به ما کمک کنه
سلام.

سوالتون خیلی کلی هست و ربطی به زبان و کامپایلر نداره ...
کدتون رو بذارید ...

موفق باشید.
(۲۴-مرداد-۱۳۹۵, ۱۹:۲۶:۴۷)sharin نوشته است: [ -> ]سلام.

سوالتون خیلی کلی هست و ربطی به زبان و کامپایلر نداره ...
کدتون رو بذارید ...

موفق باشید.

ببین من می خوام یه عدد رو با میکرو LPC ارسال کنم(با پروتکل spi) و اون سمت با یه میکرو دیگه بخونم مشکلم اینه که اعداد بزرگتر از 256 رو ارسال نمی کنه
اینم برنامه ام

فایل spi

یعنی ارسال می کنه ولی یه عدد دیگه نشون می ده
نمی دونم باید چی کار کنم؟؟
(۲۴-مرداد-۱۳۹۵, ۱۹:۲۶:۴۷)sharin نوشته است: [ -> ]سلام.

سوالتون خیلی کلی هست و ربطی به زبان و کامپایلر نداره ...
کدتون رو بذارید ...

موفق باشید.

خب سورس برنامه رو گذاشتم لطف کنی بگی چی کار کنم؟؟ ممنونت می شم
بچه ها یکم گرفتارن؛ مطمن باشید به محص اینکه آنلاین بشند پاسخ میدن؛ عجله نکنید


Biggrin  حالا خوشم میاد تا یک سال دیگه کسی جواب نده ضایع بشم Biggrin Biggrin
سلام
سوالتون رو به 2 بخش تقسیم میکنم و فرض میکنم که ارتباط spi شما سالمه و 8 بیتی هست.


نقل قول: توی زبان سی و کامپایلر keil چه جوری میشه یه کلمه مثلا ali رو به صورت حروف جدا جدا روی lcd نمایش داد

مثلا اول a رو نمایش داد بعد از چند ثانیه l  وبعد i
خب، هر string ای برای مثال ali، آرایه ای از کاراکتر هاست. کاراکترها ذاتا عدد 8 بیتی هستن(کاری با unicode ها ندارم)

و هر حرف و ... معادل یک کد اسکی هست کامپایلر وظیفه تبدیلش رو به عهده داره

مثلا 
کد:
char var = 'a';
unsigned short var2 = var;
موقع شبیه سازی یا debug اگه متغیر های var و var2 رو watch کنید، متوجه منظورم میشید(البته اگه ربطی به سوالتون داشته باشه Biggrin )


پس با این حساب برای ارسال ali باید آرایه ای که ali درش نوشته شده، رو index به index با تابع spi به slave ارسال کنید:


لینک Compile & Exec آنلاین






نقل قول: ببین من می خوام یه عدد رو با میکرو LPC ارسال کنم(با پروتکل spi) و اون سمت با یه میکرو دیگه بخونم مشکلم اینه که اعداد بزرگتر از 256 رو ارسال نمی کنه
خب طبیعیه
تابع spi تون، آرگومان اش، 8 بیتی هست. متغیر 8 بیتی 0 تا 255 رو میتونه ذخیره کنه.
وقتی شما 256 و بزگتر از 256 رو میخواین ارسال کنید، 8 بیت اول عددتون فقط ارسال میشه. بقیه بیت ها از دست میرن.
 برای ارسال هر عدد 16 بیتی، 2 بار تابع spi رو فراخوانی کنید و در هر بار، 8 بیت از عددتون رو ارسال کنید.
منتهی سمت slave هم باید برای دریافت یک عدد 16 بیتی برنامه رو تغییر بدید، طوری که هر عدد 16 بیتی به کمک 2 بار فراخوانی تابع spi تشکیل بشه ( اپراتور های << و >> رو در زبان C مرور کنید) (به نام اپراتوهای bitwise یا عمگرهای بیتی شناخته میشن؛ عملگر >> و << عملگرهای شیفت هستند؛ اطلاعات بیشتر در ویکی )


موفق باشید