ارور espected در کدویژن

سلام، سعی کنید انقدر کدها رو پاک کنید تا دیگه ارور نداشته باشید. بعد تکه تکه اضافه کنید کدها رو تا مشکل پیدا بشه. اولین تکه ای که باعث مشکل شد رو بررسی کنید. اگر موفق نشدید، اون اولین تکه رو مجدد اینجا برای من بفرستید.

میشه فایل .c پروژه رو ارسال کنید اینجا؟

یعنی بنویسم
flash uint8_t char0

روش اول رو فهمیدم.روش دوم {} دیگه نمیخاد؟یادمه مثلا { .......... } typdef struct بعد یه نوع متغییر از نوع استراکت میساختیم.
الان typedef uint8_t byte میاد یه byte از نوع uint8_t میسازه؟مقداری دیگه نباید بهش بدیم؟
و مهندس راهی نداره با اضافه کردن کتابخانه یا تنظیمات کامپایلر یا IDE اینکارو کرد؟

عالی بود مهندس کاملا درست شد.
اول عدد رو8 کردم ولی بازم ایراد داشت.
uint8_t کار رو دراورد.مرسی مهندس.
برای شناسوندن byte باید چکرد؟

پیشنهاد می کنم برای یک بایت از نوع داده uint8_t استفاده کنید و برای استفاده از این نوع داده باید فایل زیر رو به پروژه اضافه کنید:
#include <stdint.h>

دو روش وجود داره برای اینکار:
۱. استفاده از define:
#define byte uint8_t

۲. استفاده از typedef:
typedef uint8_t byte;

مرسی مهندس جان.عالی بود.

یک نکته دیگه هم اینکه نوع داده byte در زبان c خیلی محبوب نیست و معمولا از char یا unsigned char و یا از نظر من بهتر از اینها int8_t و uint8_t استفاده میشه.

[upl-file uuid=e3023d86-15d8-4551-9cb5-08628d1906ad size=1kB]41.c[/upl-file]

بفرمایید مهندس.حقیقت میخاستم روی lcd کاراکتری حروف فارسی رو رندر بگیرم.چنتا کاراکتر از نوع flash byte تعریف کردم.تو این فایل c یدونه متغییر ها هست


همین تکه هست مهندس.7 تا کاراکتر 7 تایی از نوع flash byte تعریف کردم.هرکدوم که میمونه همین ارور میده.فرقی نداره کاراکتر اول باشه یا دومی یا …

دو تا مشکل در اون قسمت از فایل وجود داره.
۱. شما آرایه ۷ خونه ای تعریف کردید ولی داخلش ۸ تا المان قرار دادید. اون عدد داخل براکت هنگام تعریف آرایه، تعداد المان ها هست و به معنی از ۰ تا اون عدد نیست.
۲. شما از نوع داده byte استفاده کردید که باید برای کامپایلر تعریفش کنید. به صورت دیفالت این رو نمی فهمه. (البته کامپایلر ها با هم فرق دارن و در بعضی ها byte رو میفهمه. ولی در نسخه کدویژنی که من دارم byte رو باید براش تعریف کنید.)
اگر خاطرتون باشه، همین مشکل رو در هنگام استفاده از uint8_t داشتیم که بعضی کامپایلر ها اون رو نمی فهمن و باید توسط فایل .h اون تعاریف رو include میکردیم.


سلام مهندس.منکه } رو گذاشتم نمیدونم چرا هی ارور میده.مشکلش کجاست بنظرتون؟

روش دوم احتیاج به چیز دیگه نداره. همینطوری کار میکنه. typedef کارش این هست که یک اسم رو به یک نوع داده (که می تونه struct هم باشه حتی) نسبت میده.
درواقع این خط، به کامپایلر میگه که یک نوع داده به اسم byte داریم که همون uint8_t هست. این خط رو بعد از include ها بذارید.
در مورد اینکه با اضافه کردن کتابخانه یا تنظیمات IDE بشه اینکار رو کرد: من داخل تنظیمات همچین چیزی ندیدم. شاید باشه. کتابخانه هم لازم نداره واقعا. کار خیلی خیلی ساده ای هست. چیزی به اسم byte وجود نداره برای خیلی از IDE ها و شما باید با یکی از دو روشی که گفتم (خیلی ساده و در یک خط) به کامپایلر بفهمونید که منظورتون از byte چی هست.