1. Ngắt là gì

Ngắt (Interrupt) là một vài sự kiện cấp bách bên trong hoặc bên ngoài cỗ vi tinh chỉnh xảy ra, buộc vi tinh chỉnh và điều khiển tạm dừng triển khai công tác bây chừ, ship hàng ngay lập tức mau lẹ trọng trách cơ mà ngắt thử dùng – nhiệm vụ này Call là trình ship hàng ngắt (ISR: Interrupt Service Routine).

Bạn đang xem: Isr là gì

Vì sao phải áp dụng ngắt : với vi điều khiển có thể Giao hàng mang đến những sản phẩm, bao gồm 2 phương pháp để thực hiện điều đó đó là thực hiện những ngắt (Interrupts) cùng dò xét (polling):

Phương pháp áp dụng ngắt: mọi khi tất cả một đồ vật ngẫu nhiên cần được giao hàng thì nó báo mang lại cỗ vi điều khiển bằng phương pháp gửi một biểu đạt ngắt. lúc nhận thấy biểu thị ngắt thì bộ vi điều khiển và tinh chỉnh xong xuôi toàn bộ phần đa gì nó sẽ thực hiện để gửi quý phái ship hàng sản phẩm công nghệ Gọi ngắt. Chương thơm trình ngắt được Hotline là trình ship hàng ngắt ISR (Interrupt Service Routine) giỏi có cách gọi khác là trình quản lý ngắt (Interrupt handler). Sau lúc Giao hàng ngắt xong xuôi, bộ vi cách xử trí lại quay trở về điểm bị ngắt trước kia cùng thường xuyên tiến hành các bước.

2. Cách thức buổi giao lưu của ngắt

Lúc gồm một ngắt xẩy ra, thì cmùi hương trình( trình phục vụ ngắt) sẽ được hoạt động như sau

Hoàn thành lệnh vẫn thực hiện.Dừng công tác sẽ thực hiệnLưu liên tưởng của lệnh kế tiếpThực hiện tại công tác nhỏ Giao hàng ngắtSau lúc triển khai dứt bước bên trên ,Vi tinh chỉnh và điều khiển đang mang lại liên tưởng lệnh tiếp nối với triển khai tiếp lịch trình.

Xem thêm: Tiểu Sử Anh Thơ (Ca Sĩ)

*
Sơ thiết bị hoạt động vui chơi của ngắt

lúc các ngắt thuộc xẩy ra một cơ hội thì vi tinh chỉnh và điều khiển vẫn dựa vào độ ưu tiên của ngắt nhằm triển khai thiết bị trường đoản cú tiến hành các công tác nhỏ ship hàng ngắt.Độ ưu tiên các ngắt sẽ được tùy chỉnh thiết lập trong những thanh ghi điều khiển riêng biệt của tự ngắt.Trong V850 rất có thể tùy chỉnh cấu hình 8 cường độ ưu tiên mang đến ngắt và cường độ được ưu tiên cao nhất là nút 0.Và ví như như devloper ko tùy chỉnh thiết lập cường độ ưu tiên thì sẽ tiến hành rước quý giá default(xem thêm manual của mỗi VĐK)

*
Cách thức xử lý nhiều ngắt.Như hình bên trên ta thấy , 3 ngắt a,b,c xẩy ra đồng thời nhưng mà b và c có mức độ ưu tiên cao hơn(mức 1) nên đang triển khai b,c trước.Trong ngôi trường phù hợp b,c bao gồm thuộc cường độ ưu tiên thì đang phụ thuộc giá trị mặc định để ra quyết định thực hiện b trước.

Xem thêm: Spout Là Gì ? Nghĩa Của Từ Spouts Trong Tiếng Việt (Từ Điển Anh

3.Sử dụng ngắt bên trên V850

Tạo ngắt Timer bên trên V850

Trên V850 tất cả tất cả 4 cỗ Timer 16 bit , chúng ta vẫn áp dụng test một Internal Timer M nhằm sản xuất ta Timer 1ms.Để tạo nên timer 1ms bọn họ phải ghi nhận được tần số thạch anh của thứ họ đang áp dụng.Giả sử vào ngôi trường hòa hợp này

Tần số thạch anh 8Mhz --> System clochồng frequency(fxx) = 8 x 8 = 64Mhz
Dùng bộ chia tần số nhằm lựa chọn tần sô hoạt động của Timer ft= fxx/2 = 32MHzTính Count clochồng cycle(chu kỳ của 1 lần đếm) = 1/32 μsInterval = (Set value of TAAnCCR0 register + 1) × Count clock cycleInterval : timer 1ms(1000 μs) muốn tạo thành.=> Set value of TAAnCCR0 register = 32000 - 1Cho phxay ngắt hoạt độngChọn độ ưu tiên đến ngắtKhởi động Timer

/************************************************************************************************************/ /* Create TMM0 Timer 1ms */ /************************************************************************************************************/ TM0CTL0 = 0x00; /* Set Timer frequency fxx/2 */ TM0CMP0 = (32000 - 1); /* Set value of TAAnCCR0 register */ TM0EQIC0 = 0x03; /* Timer operation Accepted, Set priority level 4 */ TM0CTL0.7 = 1; /* TMM0 Timer operation Start */Tạo chương trình bé ship hàng ngắt (Cđọng mỗi 1ms thì lịch trình nhỏ tiếp sau đây sẽ tiến hành thực hiện)#pragma interrupt INTTM0EQ0 IntTM0EQ0 /* Định nghĩa lại tên vector ngắt INTTM0EQ0*/__interruptvoid IntTM0EQ0(void) // Chương thơm trình giải pháp xử lý vào ngắt được triển khai sống đây

Khởi hễ cùng xử trí ngắt công dụng thay đổi ADC(Analog - Digital Converter) trên V850

Trong kỹ thuật số, ta thấy đại lượng số có mức giá trị xác minh là 1 trong vào hai tài năng là 0 hoặc 1, cao tốt rẻ, đúng hoặc không nên, vv…Trong thực tiễn bọn họ thấy rằng một đại lượng số (ví dụ điển hình nấc năng lượng điện thế) thực ra hoàn toàn có thể bao gồm một quý hiếm bất kỳ ở trong tầm xác định với ta định rõ các cực hiếm trong phạm vi xác minh sẽ sở hữu được tầm thường quý giá dạng số.Do kia ADC thực hiện biến đổi một đại lượng thiết bị lý tương tự như thường xuyên nào kia (thường xuyên là điện áp) lịch sự quý giá số màn biểu diễn độ to của đại lượng đó.V850 tất cả 2 bộ ADC (ADC0,ADC1)với với mỗi cỗ có 4 kênh tín hiệu analog đầu vào.Chúng ta sẽ tạo nên ngắt và hoạt động cho ADC0

AD0OCKS = 0x12; /* Set ADC frequency fxx/4 */ AD0SCM = 0x0082; /*Select the operation mode for ADC */ for (ulCount=0 ; ulCount* Tạo công tác nhỏ Giao hàng ngắt đến ADC0#pragma interrupt INTAD0 IntAD0 /* Định nghĩa lại thương hiệu vector ngắt INTAD0*/__interruptvoid IntAD0(void) // Cmùi hương trình cách xử lý vào ngắt được thực hiện sinh sống đây

4.Lưu ý Khi viết công tác bé Giao hàng ngắt

Cmùi hương trình bé con buộc phải được viết Gọn gàng, thời gian xử trí nlắp bởi Khi vẫn tiến hành một ngắt thì các ngắt khác hoặc công tác chủ yếu sẽ không được triển khai.Kiểm tra lại thời hạn hoạt động vui chơi của một lịch trình nhỏ Giao hàng ngắt bằng máy hiện sóng.Thiết lập mức ưu tiên cho các ngắt tương xứng với mục đích thiết bịLưu ý sẽ có một số lệnh sẽ không còn được thực hiện lúc bọn họ Điện thoại tư vấn trong ngắt (tùy vi điều khiển)Sử dụng những vòng lặp một biện pháp tất cả kiểm soát điều hành nhằm tách thời hạn cách xử lý vào ngắt thừa lâu.

Chuyên mục: TỔNG HỢP
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *