PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-05-2010, 11:18 PM   #1
ngocthanh07
Đệ tử 2 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 44
:
Bạn có thể post nguyên cái code của bạn ko, bạn hỏi nguời khác, mà bạn cứ cắt xén câu hỏi như vậy, nguời ta phải đoán bạn làm gì rồi, chưa làm gì rồi
rất là khó
Code:
/* service routine for timer 0 interrupt */
void interrupt
timer0_isr(void)
{
	if(reload == 0){
		// effect a change on PORTB whenever our desired period is reached.
		// Note this timing will contain a margin of error.
		reload = RELOADS + 1;
		seconds++;
		PORTB++;	// effect a change on PORTB
	}
	reload--;
	T0IF = 0;
}
Đó là một ví dụ về ngắt timer 0 trong HT PIC, tớ không rành về cách viết HT PIC, nhưng liệu bạn có chắc chuơng trình của bạn sẽ nhảy vào ngắt không.

Tớ up cho bạn mổ cái file manual của HT PIC, trong chuơng năm nguời ta có 1 ví dụ về timer1 thì phải.
File Kèm Theo
File Type: pdf quickstart.pdf (245.3 KB, 97 lần tải)

thay đổi nội dung bởi: ngocthanh07, 21-05-2010 lúc 11:31 PM.
ngocthanh07 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-05-2010, 07:11 AM   #2
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi ngocthanh07 View Post
Bạn có thể post nguyên cái code của bạn ko, bạn hỏi nguời khác, mà bạn cứ cắt xén câu hỏi như vậy, nguời ta phải đoán bạn làm gì rồi, chưa làm gì rồi
rất là khó
Code:
/* service routine for timer 0 interrupt */
void interrupt
timer0_isr(void)
{
	if(reload == 0){
		// effect a change on PORTB whenever our desired period is reached.
		// Note this timing will contain a margin of error.
		reload = RELOADS + 1;
		seconds++;
		PORTB++;	// effect a change on PORTB
	}
	reload--;
	T0IF = 0;
}
Đó là một ví dụ về ngắt timer 0 trong HT PIC, tớ không rành về cách viết HT PIC, nhưng liệu bạn có chắc chuơng trình của bạn sẽ nhảy vào ngắt không.

Tớ up cho bạn mổ cái file manual của HT PIC, trong chuơng năm nguời ta có 1 ví dụ về timer1 thì phải.
hi! cám ơn ngocthanh07
đêm qua mình ngồi suy nghi lại và đọc thêm 1 số bài.hóa ra mình thiếu cho phép ngắt ngoaij vi PEIE=1, vì tmer1 là mọt ngoại vi.
mình đã bổ xung và timer1 chạy ngon lành cành đào vui quá)
nhưng lại có thêm 1 vấn đề nữa
khi mình dùng timer0 và timer1 cùng 1 lúc, thì trình dịch báo lỗi (symbol "interrupt_function" defined more than) có nghĩa là khai báo hàm ngắt quá 1 lần.
mính gọi hai hàm ngắt liên tục như thế này

void interrupt inter0(void)
{
//thực hiện lênh1.
}
void interrupt inter1(void)
{
//thực hiện lênh2.
}

có ki nào xung đột ko nhỉ mà khi dịch thì nó báo lỗi hoài?
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:35 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam