رفتن به مطلب

پست های پیشنهاد شده

سلام دوستان. میخواستم بدونم تابعی مثل تابع زیر برای فرستادن متن به صورت کاراکتر به کاراکتر روی LCD اشتباهه؟

void Motion(char *InputString,int DelayIn_ms){
lcd_clear();
   while(*InputString!='\0')
   {
       lcd_putsf(*InputString);
       delay_ms(DelayIn_ms); 
       InputString++;
   }
}

 

فراخوانیش هم اینجوری نوشتم:

 

char Text[]="This Is a Test String!";
Motion(Text,100);

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام دوستان. میخواستم بدونم تابعی مثل تابع زیر برای فرستادن متن به صورت کاراکتر به کاراکتر روی LCD اشتباهه؟

void Motion(char *InputString,int DelayIn_ms){
lcd_clear();
   while(*InputString!='\0')
   {
       lcd_putsf(*InputString);
       delay_ms(DelayIn_ms); 
       InputString++;
   }
}

 

فراخوانیش هم اینجوری نوشتم:

 

char Text[]="This Is a Test String!";
Motion(Text,100);

 

چرا برای متغیر از دستور putsf استفاده کردی. lcd-putsf معمولا برای متغیرهای ثابت مانند یک متن ثابت استفاده میشه. برای فراخوانی از دستور sprintf استفاده کنید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

عذر میخوام،من متوجه نشدم.

sprintf رشته رو میفرسته روی LCD؟

الان من بخوام با استفاده از همین پوینتر یه کاراکتر یه کاراکتر رو نمایش بدم چیا رو باید تغییر بدم؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
عذر میخوام،من متوجه نشدم.

sprintf رشته رو میفرسته روی LCD؟

الان من بخوام با استفاده از همین پوینتر یه کاراکتر یه کاراکتر رو نمایش بدم چیا رو باید تغییر بدم؟

sprintf و lcd_puts و lcd_putsf هر سه از تابع کتابخانه lcd.h محسوب میشن

sprintf برای فراخوانی استفاده میشه مثلا :

sprintf(buffer,"Numeber=%d",w);

متغیر w رو فراخوانی میکنه و برروی buffer قرار میده تا برای نمایش برروی lcd اماده بشه بعد با دستور زیر

lcd_puts(buffer);

متغیر buffer که میتونه از نوع کاراکتری باشه برروی lcd نمایش داده میشه

 

با دستور زیر هم میتوان یک متن ثابت رو برروی lcd نمایش داد

lcd_putsf("sample text");

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

من اینها رو قبل از main نوشتم ولی لاز هم compile نمیشه:

flash const unsigned char Text[]="This Is a Test String!";
flash const unsigned char StrHolder;
void Motion(unsigned char *InputString,int DelayIn_ms)
{
lcd_clear();
   while(*InputString!='\0')
   {   sprintf(StrHolder,"%s",*InputString);    
       lcd_putsf(StrHolder);
       delay_ms(DelayIn_ms); 
       InputString++;
   }
}

 

و توی خود main هم نوشتم:

void main(void){
lcd_init(16);
Motion(Text,100);


while (1)
     {
     // Place your code here


     }
}


 

متن ارورها :

 

Error: C:\Users\Ehsan\Desktop\LCD CodeVision\LCDTest.c(40): function argument #1 of type 'flash unsigned char' is incompatible with required parameter of type 'unsigned char *'Error: C:\Users\Ehsan\Desktop\LCD CodeVision\LCDTest.c(41): function argument #1 of type 'flash unsigned char' is incompatible with required parameter of type 'flash unsigned char *'
Error: C:\Users\Ehsan\Desktop\LCD CodeVision\LCDTest.c(164): function argument #1 of type 'flash unsigned char [23]' is incompatible with required parameter of type 'unsigned char *'
















به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

flash const رو هنگام تعریف متغیرها بردارید و فقط unsigned char رو وارد کنید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون دوست عزیز. ظاهرا فقط این کد جواب میده:

 

flash char Text[]="Test String";//char StrHolder;
void Motion(flash char *InputString,int DelayIn_ms)
{
lcd_clear();
   while(*InputString!='\0')
   {   //sprintf(StrHolder,"%s",*InputString);    
       //lcd_putsf(StrHolder);
       lcd_putchar(*InputString);
       delay_ms(DelayIn_ms); 
       InputString++;
   }
}

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...