Thông báo

Collapse
No announcement yet.

tại sao nó không đảo chiều quay khi bấm button

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

  • tại sao nó không đảo chiều quay khi bấm button

    tìm mãi mà ko thấy nguyên nhân khi biên dich CCS nó chỉ có 1 cảnh báo là function not void and does not return and value EXT_ISR
    sửa giúp mình chỉ là 1 bài cực kỳ đơn giảnClick image for larger version

Name:	aaaaaaaa.png
Views:	1
Size:	38.5 KB
ID:	1420368

    #include<16f877a.h>
    #include<def_877a.h>
    #FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
    #use delay(clock=20000000)
    int8 mode;
    #INT_EXT
    EXT_ISR()
    {
    mode++;
    if(mode==2)
    mode=0;
    }
    void quaythuan();
    void quaynguoc();
    void main()
    {
    trisb=0xff;
    trisd=0x00;
    enable_interrupts(int_EXT);
    ext_int_edge(H_TO_L);
    enable_interrupts(GLOBAL);
    mode=0;
    while(true)
    {
    switch(mode)
    {
    case 1:quaythuan();break;
    case 2:quaynguoc();break;
    }
    }
    }
    void quaythuan()
    {
    portd=0b11111110;
    }
    void quaynguoc()
    {
    portd=0b11111101;
    }

  • #2
    Quá đẳng cấp !

    Comment


    • #3
      Nguyên văn bởi chelseaboy Xem bài viết
      tìm mãi mà ko thấy nguyên nhân khi biên dich CCS nó chỉ có 1 cảnh báo là function not void and does not return and value EXT_ISR
      sửa giúp mình chỉ là 1 bài cực kỳ đơn giản[ATTACH=CONFIG]81732[/ATTACH]

      #include<16f877a.h>
      #include<def_877a.h>
      #FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
      #use delay(clock=20000000)
      int8 mode;
      #INT_EXT
      EXT_ISR()
      {
      mode++;
      if(mode==2)
      mode=0;
      }
      void quaythuan();
      void quaynguoc();
      void main()
      {
      trisb=0xff;
      trisd=0x00;
      enable_interrupts(int_EXT);
      ext_int_edge(H_TO_L);
      enable_interrupts(GLOBAL);
      mode=0;
      while(true)
      {
      switch(mode)
      {
      case 1:quaythuan();break;
      case 2:quaynguoc();break;
      }
      }
      }
      void quaythuan()
      {
      portd=0b11111110;
      }
      void quaynguoc()
      {
      portd=0b11111101;
      }
      EXT_ISR() /// Chỗ này thiếu void nó sẽ hiện cảnh báo , hàm đếm, nút bấm không xử lý khéo, không chống rung sẽ không chạy nổi đâu.

      Mô phỏng thì nối RD6, RD7 ... chương trình thì RD0, RD1 chẳng hiểu nó sẽ chạy ra sao ?

      Thử chương trình này xem :

      Nhớ nối mô tơ vào RD0, RD1 ... điều chỉnh moto 5V không có khi nó đếch thèm chạy !
      Code:
      #include<16f877a.h>
      #FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
      #use delay(clock=20000000)
      int8 mode;
      #INT_EXT
      void EXT_ISR()
      {
      
      if(mode<2)mode++;
      else mode =1;
      
      }
      void quaythuan();
      void quaynguoc();
      void main()
      {
      set_tris_b(0xff);
      set_tris_d(0x00);
      enable_interrupts(int_EXT);
      ext_int_edge(H_TO_L);
      enable_interrupts(GLOBAL);
      mode=0;
      while(true)
      {
      switch(mode)
      {
      case 1:quaythuan();  break;
      case 2:quaynguoc();break;
      }
      }
      }
      void quaythuan()
      {
      output_d(0b11111110);
      }
      void quaynguoc()
      {
      output_d(0b11111101);
      }
      Click image for larger version

Name:	moto.jpg
Views:	1
Size:	153.6 KB
ID:	1391610
      Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

      Comment


      • #4
        Nguyên văn bởi thangbk92 Xem bài viết
        Quá đẳng cấp !
        bạn ơi mình mới học mà có cần phải nói đểu vậy không . chỉ mình thì mình cảm ơn

        Comment


        • #5
          cảm ơn bạn nhiều nhá queduong

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X