Thông báo

Collapse
No announcement yet.

giải thích hộ em đoạn code này với!!!!

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

  • giải thích hộ em đoạn code này với!!!!

    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    // Place your code here
    if(!PINC.6) encoder++;
    else encoder--;
    if(encoder+1==0) encoder=0;
    }
    thanks các anh các chị nhiều

  • #2
    interrupt [EXT_INT0] void ext_int0_isr(void)// nhảy vào chương trình ngắt, còn ngắt j thì bạn tự tìm nhé
    {
    // Place your code here// dùng google tra từ nhé ^^
    if(!PINC.6) encoder++;// nếu đảo trạng thái chân C6 thì biến encoder tăng lên 1 đơn vị
    else encoder--;// nếu ko thì giảm 1 đơn vị
    if(encoder+1==0) //encoder=0; nếu encoder cộng với 1 bằng 0 thì encoder = 0;
    }

    mình chỉ dịch nguyên văn thôi, theo mình thì đoạn code này hơi vô lý
    Làm mọi việc đúng giờ

    Hãy là người Việt Nam hiện đại

    Comment


    • #3
      cảm ơn bạn đã trả lời giúp mình! bạn thấy nó vô lý ở chỗ nào?

      Comment


      • #4
        theo mình thì code này dùng đếm số xung encoder (động cơ hay đếm sản phẩm gì đó...)
        đoạn chỗ này:
        if(!PINC.6) encoder++;
        else encoder--;
        else xảy ra khi nào nhỉ?, khi pin c.6 ở mức 0 hay mức 1, thế thì nếu ngắt liên tục thì lúc nào cũng giảm ròi, ko thể có chuyện trùng hợp ngắt xảy ra đúng vào lúc đảo trạng thái đựoc
        if(encoder+1==0) encoder=0; cái này thì biến encoder có số âm ròi, giả sử sau else kia bằng -1, thì lập tức lại bằng 0 ???
        Làm mọi việc đúng giờ

        Hãy là người Việt Nam hiện đại

        Comment


        • #5
          cảm ơn bạn đã quan tâm nhé, có lẽ để mình tìm hiểu thêm đã.Mình cũng chả biết nó sai như thế nào nữa.

          Comment


          • #6
            stargreen nhầm rồi if(!PINC.6) là cách viết gọn của if(PIN.6==0), nôm na là if(biến) bạn làm thế nào thì làm nhưng khi "biến = true" thì CT sẽ thực hiện các lệnh trong if(biến){}.

            Khi encoder (giả sử là 8bit) = 0 mà bạn vẫn thực hiện "encoder--;" thì khi đó encoder == 255 như vậy thì sẽ sai ý đồ của coder nên lại phải gán "encoder = 0;" chứ không phải vì nó âm.
            Nhớ quá khứ buồn rơi nước mắt.
            Nhìn tương lai lạnh buốt sống lưng.
            Y!M: nhamdtk4.

            Comment


            • #7
              Mình thì thường viết kiểu này :

              interrupt [EXT_INT0] void ext_int0_isr(void)
              {
              DEM_EN0++;
              if(DEM_EN0 == 1000000)
              { DEM_EN0 = 0;
              };
              }

              Tín hiệu encoder đếm được dùng điều chỉnh các chỗ khác !
              Bạn dùng ngắt ngoài rồi thì đặt điều kiện ngắt vào đây nữa làm gì chứ ? Cứ có tín hiệu ngắt ngoài tác động là ngắt thực hiện và tăng biến đếm encoder thôi

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                hôm nay, 13:11
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                hôm nay, 09:25
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                hôm nay, 09:10
              • Ng.Phuong.5
                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Mấy con...
                Hôm qua, 19:44
              • viettinh
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi viettinh
                Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                Hôm qua, 18:12
              • nguyendinhvan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi nguyendinhvan
                Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                Cách đơn giản...
                Hôm qua, 00:04
              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                08-01-2025, 19:02
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                08-01-2025, 15:43
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                08-01-2025, 15:28
              • mèomướp
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi mèomướp
                Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                08-01-2025, 11:44
              Đang tải...
              X