اطلاعیه

Collapse
No announcement yet.

درخواست راهنمایی برای دستور if

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    درخواست راهنمایی برای دستور if

    سلام دوستان
    من از پورت سریال استفاده می کنم و برای میکرو اطلاعات ارسال می کنم (با پورت کام) و در lcd بخوبی نمایش داده میشه حالا مشکل من اینجاست که نمی تونم اطلاعات ارسال کنم به همون پورت سریال

    مثلا وقتی به میکرو عدد 10 فرستلده شد test1 یا پینی رو روشن کنه بفرسته و وقتی عدد 11 فرستاده شد مثلا test2 بفرسته
    همین عدد 10 در lcd نمایش داده میشه ولی هر کاری می کنم نمی تونم در دستور شرطی قرار بدم

    این برنامه من : که دستور if کار نمی کنه


    char c[2];

    while(1)
    {
    gets(c,2);

    if(c==10)
    {
    PORTB = 0xff ;

    }
    else
    {
    PORTB = 0xf5 ;

    }
    lcd_puts(c);
    {

    #2
    پاسخ : درخواست راهنمایی برای دستور if

    از دستور atoiدر کتابخونه ی stdlibاستفاده کن

    دیدگاه


      #3
      پاسخ : درخواست راهنمایی برای دستور if

      میشه یک مثال بزنید ؟

      دیدگاه


        #4
        پاسخ : درخواست راهنمایی برای دستور if

        داده ای که برای پورت سریال و نمایش رو LCD استفاده میشه از نوع کارکتر هست و نمیشه اون رو به این صورتی که استفاده کردید مقایسه کرد. میتونید با تابع strcmp دو تا رشته رو مقایسه کنید یا آرایه c رو که تعریف کردید cell by cell مقایسه کنید.

        //First Method
        char c[2];
        while(1) {
        gets(c,2);

        if(c[1]=='1' && c[0]=='0&#039
        PORTB = 0xff ;
        else
        PORTB = 0xf5 ;
        lcd_puts(c);
        }

        //Second Method
        char c[2];
        while(1){
        gets(c,2);
        if(strcmp(c,"10&quot==0)
        PORTB = 0xff ;
        else
        PORTB = 0xf5 ;
        lcd_puts(c);
        }

        دیدگاه


          #5
          پاسخ : درخواست راهنمایی برای دستور if

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


          //Second Method
          char c[2];
          while(1){
          gets(c,2);
          if(strcmp(c,"10&quot==0)
          PORTB = 0xff ;
          lcd_puts("TRUE"
          else
          PORTB = 0xf5 ;
          lcd_puts(c);

          دیدگاه


            #6
            پاسخ : درخواست راهنمایی برای دستور if

            چون من بعد از if فقط یه دستور داشتم آکولاد نذاشته بودم، الان که دو تا دستور میخوای اجرا کنی با if باید آکولاد بذازی حتماً، فکر کنم مشکل حل شه

            دیدگاه

            لطفا صبر کنید...
            X