اطلاعیه

Collapse
No announcement yet.

مشکل در روشن کردن تایمر داخل تابع

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

    مشکل در روشن کردن تایمر داخل تابع

    با سلام
    من میخوام یکی از تایمرهای میکرو رو داخل یه تابعی روشن کنم تابع مورد نظر اجرا میشه و بقیه دستورات داخلشو اجرا میکنه ولی فقط تایمر روشن نمیشه
    دوستان اگه میتونن در این زمینه کمکم کنن

    #2
    پاسخ : مشکل در روشن کردن تایمر داخل تابع

    اینجور ک نمیشه..کدتونو بزارید تا بشه ی کاریش کرد...
    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

    www.intelart.ir


    ساخت کنترلر دما PID فازی با AVR [آموزشی]

    دیدگاه


      #3
      پاسخ : مشکل در روشن کردن تایمر داخل تابع

      نوشته اصلی توسط Mahdi.Faani
      اینجور ک نمیشه..کدتونو بزارید تا بشه ی کاریش کرد...
      کد رو یه سیستمی هست که به اینترنت وصل نیست و یو اس بی هاش هم بسته هست اجازه خارج کردنشو ندارم :angry: :angry: :angry:

      دیدگاه


        #4
        پاسخ : مشکل در روشن کردن تایمر داخل تابع

        سلام
        دادا قرار نیست کد رو از دستگاه خارج کنی .کافیه اون کدی که داخل دستگاه هست رو بنویسی اینجا

        دیدگاه


          #5
          پاسخ : مشکل در روشن کردن تایمر داخل تابع

          [code=c]void SMSALERT(void){

          PORTC.0=1;
          for (a=0;a<160;a++){
          if(resive[a] == ',&#039{
          number[0] = resive[a+1];
          number[1] = resive[a+2];

          num = atoi (number);


          sprintf(requsttoread,"AT+CMGR=%d\r\n",nu m);
          puts(requsttoread);

          do{
          ch = getchar();
          resive[l]= ch;
          l++;
          }while(ch != 'K'
          l=0;
          TCCR1B=0x01;
          }
          }
          }

          interrupt [EXT_INT0] void ext_int0_isr(void)
          {

          do{
          resive[i] = getchar();
          i++;
          }
          while((resive[i-1] != 'n&#039 && (i<17) );


          for (r=0; r<160; r++){
          if(resive[r] == '+&#039{
          search[0] = resive[r];
          search[1] = resive[r+1];
          search[2] = resive[r+2];
          search[3] = resive[r+3];
          search[4] = resive[r+4];
          search[5] = resive[r+5];
          search[6] ='\0';
          }

          }
          if( !(strcmp(search , "+CMTI:&quot)) SMSALERT();

          } [/code]
          این بخشی از کد هست که باید تایمر روشن بشه و نمیشه
          وارد اون تابعی که توش تایمر روشن بشه میشه بقیه کاراو انجام میده ولی تایمر کار نمیکنه
          TCCR1B=0x01; وقتی اینو میبرم داخل خود روتین اینتراپت خارجی تایمر درست کار میکنه ولی تو اون تابع کار نمیکنه

          اضافه شده در تاریخ :
          الان تست کردم وقتی اون کد do while را بر میدارم درست میشه
          به نظرتون مشکلش چیه؟؟


          اضافه شده در تاریخ :
          مشکلش وجود تابع grtchar هست
          چرا وقتی از getchar استفاده میکنم وقفه تایمر اتفاق نمی افته؟؟؟
          چطوری حلش کنم؟؟؟

          دیدگاه


            #6
            پاسخ : مشکل در روشن کردن تایمر داخل تابع

            :smile:

            دیدگاه

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