Thông báo

Collapse
No announcement yet.

Anh chị nào có thể giải thích giúp em đoạn chương trình này với.Em cảm ơn anh chị

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Anh chị nào có thể giải thích giúp em đoạn chương trình này với.Em cảm ơn anh chị

    void isr_timer1() interrupt 3
    { TF1=0; // Xoa co tran TF1
    TR1=0; // Dung bo dinh thoi timer 1
    k++;
    dem++;
    if(k==1000) {
    vantocxung*100)+(xung%100)*60);
    xung=0;
    k=0;
    }
    if(dem>1000) dem=0;
    if(dem<tocdo)
    P2=x;
    else
    P2=0x00;
    TR1=1; // Khoi dong bo dinh thoi timer 1
    }

  • #2
    Code:
    void isr_timer1() interrupt 3
    {     TF1=0;				// Xoa co tran TF1
           TR1=0;				// Dung bo dinh thoi timer 1
           k++;
           dem++;
           if(k==1000)				  		  
           {
    	         vantoc=((xung*100)+(xung%100)*60);
    		 xung=0;	
    	         k=0;
           }
           if(dem>1000) 
          {        dem=0;       }
           if(dem<tocdo)
           {       P2=x;          }
           else
           {      P2=0x00;	  }       			
           	TR1=1;  			// Khoi dong bo dinh thoi timer 1
    }
    code đã giải thích rõ rồi mà bạn
    chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
    Everything should be made as simple as possible, but not simpler

    Comment


    • #3
      Nguyên văn bởi daohuytien Xem bài viết
      Code:
      void isr_timer1() interrupt 3
      {     TF1=0;				// Xoa co tran TF1
             TR1=0;				// Dung bo dinh thoi timer 1
             k++;
             dem++;
             if(k==1000)				  		  
             {
      	         vantoc=((xung*100)+(xung%100)*60);
      		 xung=0;	
      	         k=0;
             }
             if(dem>1000) 
            {        dem=0;       }
             if(dem<tocdo)
             {       P2=x;          }
             else
             {      P2=0x00;	  }       			
             	TR1=1;  			// Khoi dong bo dinh thoi timer 1
      }
      code đã giải thích rõ rồi mà bạn
      một số chỗ em biết em giải thích đó rùi. nhưng còn chỗ if(k==1000) và P2=x; (P2=0x00 có phải là bắt đầu quét lại cổng P2 đúng ko ạ).

      Comment


      • #4
        Nguyên văn bởi caokhanhpt91 Xem bài viết
        một số chỗ em biết em giải thích đó rùi. nhưng còn chỗ if(k==1000) và P2=x; (P2=0x00 có phải là bắt đầu quét lại cổng P2 đúng ko ạ).
        dòng lệnh if(k==1000) là dòng lệnh điều kiện. nếu như biến k=1000 thì sẽ thực hiện câu lệnh bên trong nó.
        P2=x; P2=0; xuất dữ liệu ra như bình thường.
        chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
        Everything should be made as simple as possible, but not simpler

        Comment


        • #5
          Theo mình thì đây là 1 chương trình phục vụ ngắt thời gian dùng để tính toán tốc độ quay của motor, và người ta setup cái này trên timer 1 với thời gian là 1ms có nghĩa là cứ sau 1ms thì chương trình này được gọi 1 lần (k tăng 1 đơn vị) và do (1ms nên) 1ms*1000=1s.

          Comment


          • #6
            Haiz, nhìn kỹ lại thì hình như còn có cả điều tốc nữa thì phải.
            Code:
            if (k==1000) // -> Như trên đã giải thích tạo (1 giây)
            P2=0;// Cái này chắc tắt motor đi.
            P2=x;//cái này chắc để tăng tốc động cơ lên. hoặc ít ra là thúc cho động cơ quay ngay tại thời điểm đó
            Trên đây là ý hiểu của mình, mình chưa làm mấy cái này bao giờ cả chỉ biết chút về lập trình nếu có gì sai thì mọi người góp ý cùng học hỏi nhé.

            Comment

            Về tác giả

            Collapse

            caokhanhpt91 Tìm hiểu thêm về caokhanhpt91

            Bài viết mới nhất

            Collapse

            Đang tải...
            X