View Single Post
Old 17-06-2007, 07:00 AM   #2
LeDuc
Đệ tử 6 túi
 
LeDuc's Avatar
 
Tham gia ngày: Mar 2007
Bài gửi: 150
:
Trong hàm init chọn như sau: dùng pre cho timer0 với tỉ lệ 1:2
Code:
void init(void){
	// khoi tao cho các port
	// Khoi tao cho cac thanh ghi	
	OPTION  = 0x00; // dung prescaler cho timer0 voi ti le la 1:2

	// Khoi tao cho ngat Timer0
	GIE = 1; // cho phep ngat toan cuc
	T0IE = 1; // cho phep ngat timer0
	T0IF = 0; // xoa co ngat timer0
	TMR0 = 6; // khoi tao
}
[/QUOTE]

Bác Ngô ơi giúp em với,trong CCS cờ ngắt timer0 là gì vậy? em đọc trong trong thư viện 16f877a.h kô thấy no định nghĩa chỗ này.Em liều lam đại thì nó ko chịu--->em pó tay.Và cái cho phép ngắt toàn cục ko thấy ai nói đến vậy?Và cách tính khoản giá trị nạp ban đầu cho timer?
VD : em muốn tạo ra một xung với tần số là 10Khz o portD.7 .
f=100Khz =>T=1/10=0.1ms=100micro giây. |
chu ky may dai 1 micro s,
==> cần có 50 micro s tương đương với 50 lần đếm lên của timer
==> giá trị cần nạp cho timer la :
256 - 50=206=0xCE
Nếu là 8051 thi ta nạp vào thanh TH0=0xCE ;
Vậy đối với Pic 16f877A cái giá trị đó giờ phải viết vào đâu vậy bác Ngô ?giúp em với.
Các bác có thể chỉ rõ hơn về vấn đề timer này khi dùng CCS ko vậy?
Thanks các bác .
LeDuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn