Thông báo

Collapse
No announcement yet.

hàm ngắt (interrput) với codevision avr?

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

  • hàm ngắt (interrput) với codevision avr?

    các bác cho em hỏi lập trình 89c51 với kelic thì có hàm ngắt vậy trong codevision avr có hàm ngắt không nếu có thì cách sử dụng nó như thế nào ạ

  • #2
    haiz, codewizard thẳng tiến

    Comment


    • #3
      Nguyên văn bởi chung1608 Xem bài viết
      haiz, codewizard thẳng tiến
      nói chung không cơ bản thì dễ cũng hóa khó !
      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
        Trên các diễn đàn diện tử như diễn đàn này hoặc hocavr.com hồi trước có tài liệu tổng hợp hướng dẫn học codevisionAVR căn bản của hội DKS group (tiếng việt cực kì trực quan dễ hiểu), bạn suri nên tìm hiểu trước chứ hỏi lắc nhắc vậy cũng thật khó trả lời tùng chút một, còn lại thì AVR là dòng MCU cao cấp hơn bọn 89 rất nhiều, nói vậy là bạn hiểu rồi chớ, mình khuyên nên lên trang hocavr.com tu luyện thật kĩ các bài hướng dẫn của họ, còn phần tài liệu nếu khó kiếm quá thì mail cho mình mình share cho xcibax@yahoo.com
        Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
        Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

        Comment


        • #5
          Còn về phần ngắt của codevision thì có rất nhiều thứ chắc nói cả tuần ko hết vì còn phụ thuộc vào mục đích sử dụng (nếu đã có kiến thức nền tảng vững rồi thì tốt, còn ko thì...... bồi đắp từ từ vậy). Ở đây mình đưa ra 1 trích đoạn code mẫu về ngắt ngoài và ngắt timmer, đầu tiên khai báo ngắt trong phần thiết lập ban đầu cho mcu (bạn tự tìm hiểu lấy mình chỉ tập trung vào code), và code minh họa:

          // External Interrupt 0 service routine
          interrupt [EXT_INT0] void ext_int0_isr(void)
          {
          // Place your code here
          count_int++;
          trang_thai=~trang_thai;
          //data1[i]=trang_thai;
          data_timer[i]=TCNT0;
          i++;
          on_timer();
          }

          // Timer 0 overflow interrupt service routine
          interrupt [TIM0_OVF] void timer0_ovf_isr(void)
          {
          // Place your code here
          error=1;
          TCNT0=0;
          }


          Đỏ là chương trình phục vụ ngắt ngoài 0, xanh là ngắt timmer0, các chương trình ngắt được codevision dọn sẵn đến phần // Place your code here là hết (quá ngon rồi còn gì), việc của bạn là viết lệnh vào bên trong hàm phục vụ ngắt theo ý muốn của mình.
          Rồi mình chỉ có thể nói đến đây vì vấn đề rất rộng nên cũng lực bất tòng tâm, bạn nên tự tay viết 1 vài code rồi cho mô phỏng trên proteus là hiểu vấn đề ngay thôi.
          Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
          Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

          Comment


          • #6
            mấy pác nói chi không zô chủ đề gì hết tuy"lụm được vàng" nhưng mà tài liệu về mikro ít quá em không tham khảo được nên codevision thẳng tiến luôn mặc dù phải chịu sống chung với "lũ" mấy pác trả lời cho em cái phần trên đi mấy pác nói lạc đề rùi em nghĩ nát óc mấy hôm nay để xem phần mền nào là "numberone" cho avr em thấy codevision là số 1 còn mikro c anh que duong gừi cho em em thấy nó khó bởi ta không xem được thư viện của nó vd cái ngắt này em mò hoài mà duối luôn củng hông biết nó ra sao cả mà lâp trình cho vdk thì chủ yếu là ngắt chiếm 90% rùi cho nên Covesion "thắng tiến"

            Comment


            • #7
              Nguyên văn bởi suri Xem bài viết
              mấy pác nói chi không zô chủ đề gì hết tuy"lụm được vàng" nhưng mà tài liệu về mikro ít quá em không tham khảo được nên codevision thẳng tiến luôn mặc dù phải chịu sống chung với "lũ" mấy pác trả lời cho em cái phần trên đi mấy pác nói lạc đề rùi em nghĩ nát óc mấy hôm nay để xem phần mền nào là "numberone" cho avr em thấy codevision là số 1 còn mikro c anh que duong gừi cho em em thấy nó khó bởi ta không xem được thư viện của nó vd cái ngắt này em mò hoài mà duối luôn củng hông biết nó ra sao cả mà lâp trình cho vdk thì chủ yếu là ngắt chiếm 90% rùi cho nên Covesion "thắng tiến"
              CODE WIZARD (cót quy da) tất cả khai báo nằm hết trong đó dọn tới tân PLACE YOUR CODE HERE còn ko xem (thậm chí tới ngắt UART còn có hỗ trợ 1 bộ đệm nhận nhìu byte).
              MikroC thì hỗ trợ chi tiết tất cả các thư viện của nó trong file help có cả library example code (vài cái còn có vẽ ra hardware connection ). Vector ngắt thì có interrupt assistant (Ctrl+Alt+I)

              Comment


              • #8
                nhưng em có thấy hàm ngắt đâu nhỉ chỉ thấy nó khai báo lu xu bu thui đọc mà đuối vậy hàm ngắt là do mình tự khai báo hà mấy anh chứ cấu hình nó hông có ca vd interrupt(vevtorngắt)tên(void) zậy đúng hông
                mà cái thằng mikro c em nghĩ nó là của tụi nga so viết củ hả thấy tên gì "nicolai" "zacovic"

                Comment


                • #9
                  #define EXT_INT0 2
                  #define EXT_INT1 3
                  #define TIM2_COMP 4
                  #define TIM2_OVF 5
                  #define TIM1_CAPT 6
                  #define TIM1_COMPA 7
                  #define TIM1_COMPB 8

                  #define TIM1_OVF 9
                  #define TIM0_OVF 10
                  #define SPI_STC 11
                  #define USART_RXC 12
                  #define USART_DRE 13
                  #define USART_TXC 14
                  #define ADC_INT 15
                  #define EE_RDY 16
                  #define ANA_COMP 17
                  #define TWI 18
                  #define EXT_INT2 19
                  #define TIM0_COMP 20
                  #define SPM_READY 21
                  mấy anh cho em hỏi dòng in đậm đó có phải là các chế độ hoạt động của timer không
                  TIM1_CAPT 6
                  #define TIM1_COMPA 7
                  #define TIM1_COMPB 8
                  [/B][/U]
                  #define TIM1_OVF 9 MẤY ANH CHO EM HỎI CÁC DÒNG IN ĐẬM CÓ NGHĨA GÌ

                  Comment


                  • #10
                    hô hô , mikroc mà khó ư ??? Có lx mikroC có cái file Help dễ hiểu và trực quan nhất trong mọi trình biên dịch cho bọn MCU đấy !

                    - trong file help của nó dạy cho biết cách sử dụng các hàm của thư viện như thế nào , thậm chí có luôn cả Sơ đồ mạch kết nối ...
                    Vào trong thư mục cài đặt xem 1 đống Examples của nó đầy đủ ngắt timer, uart , thẻ nhớ , bàn phím , lcd ,I2c , eeprom.

                    Nếu đã học được 89 rồi , đã từng làm rồi thì có lẽ học thêm 1 ngày ( chủ yếu là cách sử dụng ) là xong phim !

                    Trừ trường hợp đã học 89 rồi ( nhưng chẳng biết gì ! ) ... tôi chỉ cho bạn tôi 3 buổi ( nó đã từng lập trình 89 Raisonace ) ... trong 3 buổi đó nó làm được gần như hết 89 , PIC , dsPic và AVR !


                    --- Kết luận lại : theo tôi , hiện tại bạn cứ tạm thời theo CodeVision ... tập làm quen câu cú và lệnh , chịu gian khổ và chịu rèn luyện .

                    Chứ nếu phập ngay thằng MikroC ... ăn sẵn nằm ngửa ( tương tự như arduino bây giờ ) ... rồi sẽ đến lúc bạn chẳng hiểu được cái gì cả . Giống như 1 người đi học bị mất gốc vậy !

                    Có lẽ những phần mềm như mikroC thì nên dành cho những người đã tiếp xúc , thông thạo 1 chút, cho thương mại ... những người đã nhìn nhận được vấn đề điểm yếu điểm mạnh trong lập trình , biết khám phá sửa lỗi ( thậm chí là " sửa cả thư viện " của nó luôn ... thì nên dùng sẽ đạt hiệu quả cao ... chứ lơ mơ quá thì không ổn chút nào !
                    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


                    • #11
                      Nguyên văn bởi queduong Xem bài viết

                      --- Kết luận lại : theo tôi , hiện tại bạn cứ tạm thời theo CodeVision ... tập làm quen câu cú và lệnh , chịu gian khổ và chịu rèn luyện .

                      Chứ nếu phập ngay thằng MikroC ... ăn sẵn nằm ngửa ( tương tự như arduino bây giờ ) ... rồi sẽ đến lúc bạn chẳng hiểu được cái gì cả . Giống như 1 người đi học bị mất gốc vậy !

                      Có lẽ những phần mềm như mikroC thì nên dành cho những người đã tiếp xúc , thông thạo 1 chút, cho thương mại ... những người đã nhìn nhận được vấn đề điểm yếu điểm mạnh trong lập trình , biết khám phá sửa lỗi ( thậm chí là " sửa cả thư viện " của nó luôn ... thì nên dùng sẽ đạt hiệu quả cao ... chứ lơ mơ quá thì không ổn chút nào !
                      Bác này nói quá chuẩn luôn, muốn đào tận gốc thì nên học từ asembly trước (thật sự mình cũng ngán cái này lắm, lập trình dự án lớn thì tự sát còn sướng hơn), codevision thì tiện hơn nhưng cũng là ngôn ngữ cấp cao rồi.
                      Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
                      Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

                      Comment


                      • #12
                        em làm anu queduong thất vọng hả xin lỗi anh nha có lẽ em vẫn giữ lại cái phần mền mikro c đó để mai mốt nghiên cứu thấy anh nhệt tình quá em cũng ngại lắm dù sao thì cụng cám ơn anh nhiều

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X