Thông báo

Collapse
No announcement yet.

NhỜ giÚp code nÀy

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

  • NhỜ giÚp code nÀy

    TOI KHONG HIEU SAO 2 CHÂN RD4 VÀ RD5 CỦA TÔI NÓ CỨ Ở MỨC THẤP.
    CHO DÙ TÔI VIẾT CHƯƠNG TRÌNH KHÔNG PHẢI THẾ. TÔI ĐỌC ENCODER TỪ CHÂN T1CKI CỦA 18F4331 NHƯNG ĐỌC HOÀI KHÔNG ĐƯỢC .MỌI NGƯỜI GIÚP TÔI VỚI;

    #include <18f4331.h>
    #include <def_4331.h>

    #fuses HS
    #FUSES NOWDT
    #FUSES NOPROTECT
    #FUSES NOLVP
    /*#FUSES NOBROWNOUT
    #FUSES NOPUT
    #FUSES NOCPD
    #FUSES NODEBUG
    #FUSES NOFCMEN
    #FUSES NOCPB
    #FUSES HPOL_LOW
    #FUSES NOPWMPIN
    #FUSES STVREN
    */

    #use delay(clock=20000000)

    #use fast_io(b)
    #use fast_io(c)
    #use fast_io(a)
    #use fast_io(d)
    #use fast_io(e)

    #INT_TIMER1

    VOID NGAT_TIMER1()
    {

    }
    #zero_ram

    VOID MAIN()
    {
    INT16 A;
    TRISC0=1;
    TRISD5=0;
    TRISD4=0;


    // DOC ENCODER TU CHAN T1CKI
    // enable_interrupts(INT_TIMER1 );
    // enable_interrupts(GLOBAL );
    //SETUP_TIMER_1(T1_INTERNAL); //DUNG CHE DO TIMER
    // setup_timer_1(T1_DISABLED);// che do 16 bit
    //setup_timer_1(T1_EXTERNAL);// CHE DO COUTER
    //setup_timer_1(T1_EXTERNAL_SYNC);//timer dong bo xung vao tu T1CKI
    // setup_timer_1(T1_DIV_BY_1); // dung bo chia 1-1;
    //setup_timer_1(T1_CLK_OUT);
    setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1|T1_CLK_OUT);



    WHILE(true)

    {
    set_timer1(0);
    delay_ms(1000);
    IF(GET_TIMER1()<2000) RD4=0;
    ELSE RD5=0;

    }
    }

  • #2
    thì bạn có gán nó lên mức cao đâu?
    Ôi! Từ lý thuyết đến thực tế.

    Comment


    • #3
      ý mình là mình dùng lệnh if thì chỉ có 1 trong 2 chân mức thấp thôi chứ. sao lại 2 chân cùng xảy ra được

      Comment


      • #4
        Bác chưa ràng buộc trong hàm If,phải sửa lại như thế này

        IF(GET_TIMER1()<2000)
        {
        RD4=0;
        RD5=1;
        }
        ELSE
        {
        RD5=0;
        RD4=1;
        }

        Đảm bảo là nó chạy theo ý của bác ngay
        Ẹc,e mới học CCS được 2 tuần(mới chuyển nhà từ 89 qua) cho hỏi 3 cái dòng lệnh này để làm gì vậy nhỉ:
        TRISC0=1;
        TRISD5=0;
        TRISD4=0;


        email:
        Giá mà mạch điện tử không có nhiễu (noise) thì mình bây giờ đã là ... đại gia

        Comment


        • #5
          Bác chưa ràng buộc trong hàm If,phải sửa lại như thế này

          IF(GET_TIMER1()<2000)
          {
          RD4=0;
          RD5=1;
          }
          ELSE
          {
          RD5=0;
          RD4=1;
          }

          Đảm bảo là nó chạy theo ý của bác ngay
          Ẹc,e mới học CCS được 2 tuần(mới chuyển nhà từ 89 qua) cho hỏi 3 cái dòng lệnh này để làm gì vậy nhỉ:
          TRISC0=1;
          TRISD5=0;
          TRISD4=0;


          email:
          Giá mà mạch điện tử không có nhiễu (noise) thì mình bây giờ đã là ... đại gia

          Comment


          • #6
            Bạn có thể dùng đoạn chương trình này để làm việc với encoder.
            khai báo dùng encoder
            void init_QEI()
            {
            DFLTCON = 0x70; //check agian 0111 1000
            VELM =1;
            ERROR =1;
            //SET QEI enable in 4x update, INDX reset Position counter
            QEIM2 =1;
            QEIM1 =1;
            QEIM0 =0;
            //Set Velocity Pulse Ratio 1:1
            PDEC1 =0;
            PDEC0 =0;
            MAXCNT = 40000;
            POSCNT = 20000;
            }

            hàm POSCNT sẽ thay đổi theo encoder
            Quang Nhat
            ---------------------------------------
            Yahoo :quangnhat85ls
            Mail :
            Nhận thiết kế và ép nhựa cho đồ điện tử

            Comment


            • #7
              mình dung 2 encorder nên không dùng module qei dc. 18f4331 có 1 bộ encorder chứ mấy.mình muốn dùng timer.

              mình xin hỏi bác otacon tý nhé. hàm if một lệnh thì đâu cần để trong {} mình củng thử rồi mà chưa đc.

              còn lệnh trisc0=1; đó thật sự không fai lệnh đau bạn.

              mình khai báo địa chỉ thanh ghi #bit TRISC7 =0xF94.7
              #bit TRISC6 =0xF94.6
              #bit TRISC5 =0xF94.5
              #bit TRISC4 =0xF94.4
              #bit TRISC3 =0xF94.3
              #bit TRISC2 =0xF94.2
              #bit TRISC1 =0xF94.1
              #bit TRISC0 =0xF94.0

              mình khai báo mấy cái này trong file h kem theo đó.

              sau đó mình không dùng set_tris_c() nua

              địa chỉ cảu mấy cái này có trong datasheet dó bạn

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              • bqviet
                Trả lời cho Đấu tắt điện cho máy tính bảng
                bởi bqviet
                Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                06-12-2025, 17:17
              • nguyendinhvan
                Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                bởi nguyendinhvan
                Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                05-12-2025, 19:59
              • afrendly
                Trả lời cho Đấu tắt điện cho máy tính bảng
                bởi afrendly
                Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                04-12-2025, 01:27
              • nick22
                Trả lời cho Máy điện châm ?
                bởi nick22
                Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                01-12-2025, 13:23
              Đang tải...
              X