![]() |
|
|
|
|
#1 |
|
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 11
: |
xin lỗi các bạn và đặc biệt là anh namqn. mình sơ ý wa. cám ơn anh đã giúp em.
em post lên diễn đàn cái code cũ mà kô để ý.xin chân thành xin lỗi về sai sót này . Code:
#include <16f877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
// ngat ngoai
#int_EXT
void EXT_isr()
{
set_timer0(7); //4ms tran
}
//ngat timer0
#int_timer0
void timer0_isr()
{
set_timer1(40534);
output_high(pin_D0);
delay_us(10);
output_low(pin_D0);
}
// ngat timer1
#int_timer1
void timer1_isr()
{
output_high(pin_D1);
delay_us(10);
output_low(pin_D1);
}
// chuong trinh chinh
void main()
{
enable_interrupts(INT_EXT);
ext_int_edge(L_TO_H);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
enable_interrupts(int_timer0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
enable_interrupts(int_timer1);
enable_interrupts(global);
while(true)
{
output_high(pin_d2);
delay_ms(10);
output_low(pin_d2);
delay_ms(10);
}
}
mong anh giup em lần này nữa.thân chào anh thay đổi nội dung bởi: namqn, 31-12-2008 lúc 05:06 PM. |
|
|
|
|
|
#2 |
|
Trưởng lão PIC bang
|
Với Timer 0, bạn đang định thời bằng 16*(256 - 7) = 3984 chu kỳ máy, tức là 0,7968 ms với tần số xung clock là 20 MHz. Timer 0 là timer chạy tự do, không thể tắt (bạn sẽ không tìm thấy bit nào trong các thanh ghi liên quan đến Timer 0 để tắt nó). Do đó, những gì bạn quan sát được với Timer 0 là hợp lý.
Bạn làm thế nào để biết chân D1 có thay đổi trạng thái hay không? Bạn không quan sát được sự thay đổi của chân D1 bằng những biện pháp hiện thời không có nghĩa là chân D1 không thay đổi trạng thái. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
|
|
|
|
#3 |
|
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 11
: |
em xin lỗi,nhưng anh có thể chỉ cho em cách làm như thế nào để xuất xung được như ý không. nếu timer0 kô thể tắt thì phải làm như thế nào (chuyển qua dùng timer2 chăng)
ko trách gì em đã clear cờ ngắt của timer0 cũng kô dc.(timer0 là timer chạy tự do -em cám ơn anh về thông tin này lắm lắm) còn chân d1 em quan sát bằng osillicope nhưng ko thấy xung nào cả.em nghĩ lả do timer0 ngắt thì timer1 mới hoạt động nhưng có lẽ do timer1 chưa kip ngắt timer0 đã sét lại giá trị cho timer1 rùi. chân thành cám ơn anh và mong anh giúp.chúc anh vui |
|
|
|
|
|
#4 | |
|
Trưởng lão PIC bang
|
Trích:
Bạn nên mô tả bài toán gốc, vì bạn chưa có được giải thuật đúng. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
|
|
|
![]() |
|
|