30/09/2018, 17:55

Interrupt trong C

void T1_ISR(void) interrupt 3 //ngat timer 1 chay dong ho
{ 
	TR1=0;
	TF1=0;
	TH1=0x3C; // nap lai gia tri cho thanh ghi 
	TL1=0xAF;
	time++;	
	if(time==10)
	{time=0; B_nhay++; get_t=1;
	if(B_nhay==2)
		B_nhay=0;
	}
	TR1=1;
}

Không biết dùng để làm gì, lập trình cho vi điều khiển thấy một đoạn như vậy Hình như để ngắt nhưng chưa hiểu cơ chế của nó.

minh tran viết 20:05 ngày 30/09/2018

Mình đoán thôi nhé
TR1,TF,TH,TL là biến đại diện cho thanh ghi nào đó trong timer. Biến timer chạy 10s thì B nháy tăng lên 1. Khi B nháy = 2 thì B nháy bằng 0 lại. Chức năng có thể là hẹn giờ cho LED chớp tắt liên tục với chu kỳ là 10s.

Minh Hoàng viết 20:07 ngày 30/09/2018

Chức năng của interrupt là gì bạn, ham có interrupt được gọi khi nào, ý nghĩa của các số sau interrupt là gì
Cái này chưa gặp baogiờ

Mai Anh Dũng viết 19:57 ngày 30/09/2018

Cái này gọi là interrupt service routines (ISR), đây là một hàm bình thường. Được thực thi ở kernel mode, các thao tác trong ISR phải được thực hiện càng nhanh càng tốt.

Chức năng của interrupt là gì bạn

Đẻ thực hiện một vài thao tác khẩn cấp. Ví dụ như copy dữ liệu từ card mạng vào buffer của driver card mạng.

ham có interrupt được gọi khi nào

Khi nhận được Interrupt từ OS. Interrupt có hai loại. Hardware interrupt và software interrupt. HW Interrupt là các interrupt từ phần cứng như khi mình gõ chữ, dữ liệu đến card mạng.

Ví dụ khi mình gõ chữ thì sẽ có một interrupt gửi đến cho Hệ điều hành thông qua cổng vật lý, interrupt này sẽ trigger interrupt service routine phù hợp do hệ điều hành hoặc device driver đăng ký trước đó. Trong trường hợp gõ chữ thì interrupt này sẽ copy dữ liệu nhận được từ keyboard vào buffer, làm gì sau đó là còn tùy vào chương trình đang chờ keyboard input.

ý nghĩa của các số sau interrupt là gìCái này chưa gặp baogiờ

Cái này tùy vào design, phải đọc document cách viết interrupt của loại thiết bị này mới hiểu được.

Bài liên quan
0