PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Lại là TIMER0 ? (http://www.picvietnam.com/forum/showthread.php?t=39992)

t10000 15-08-2021 03:44 PM

Lại là TIMER0 ?
 
Tóm tắt Code của em:
setup_timer_0(RTCC_DIV_2);
enable_interrupts(int_timer0);
enable_interrupts(global);
set_timer0(6);

////////////
#INT_TIMER0
void TIME0_src()
{

CLEAR_INTERRUPT(INT_TIMER0);
DISABLE_INTERRUPTS(GLOBAL);
counter++;
if(counter==10000) // 1s
{
counter=0;
if(counter==0) read_time=1; //doc du lieu DS1307
}
SET_TIMER0(6);
ENABLE_INTERRUPTS(GLOBAL);
}
em tính toán theo công thức thì với thạch anh 20MHz thời gian xảy ra ngắt là 100 micro giây, đoạn code trên giúp em dùng hiển thi trên LCD để kiểm tra thì thấy thời gian xảy ra ngăt là ít hơn nhiều
1. anh chị giúp dỡ có vấn đề gì sai sai trên?
2. em vẫn chưa rõ lắm về tần số F dùng trong công thức value = (256-set_num )*DIV*4/f thì tần số này nó dùng thế nào khi khai báo
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
nó sẽ dùng tần số thạch anh hay tần số dao động nội, trong trường hợp dùng #FUSES INTRC_IO này thì chỉ thị
#use delay(clock=8000000) - chỉ thế thôi không thể là 20000000
cái delay clock này nó có liên quan gì với F trong công thức tính TIMER0 hay không?
(em dùng CCS C compiler nhé anh chj)

t10000 16-08-2021 11:48 AM

Buồn quá, diễn đàn dạo này vắng vẻ quá, các đại nhân thì đi vắng cả, chỉ có chừng hơn chục lãng khách ghé qua rồi đi!
Em lang thang trên mạng, em vào diễn đàn của CCS C compiler, sem copy được chừng này
"
The '#use delay' preprocessor does NOT perform any frequency setup on the PIC, it just tells the compiler how fast your crystal is, for delay (and some peripheral timings) generation purposes. You still have to indicate a #use delay(clock=1000000), but it is not enough. The correct fuse and OSCCON values need to be chosen too.
"
rồi em lại vô datasheet của PIC copy được chừng này
"
The system clock source can be switched between external and internal clock sources via software using the System Clock Select (SCS) bit
Clock Source modes are configured by the FOSC<2:0> bits in the Configuration Word register (see Section 14.0 “Special Features of the CPU”).
"
Rồi lại thấy CCS forum mách bảo phải là như thế này
#BYTE OSCCON =0x8F
OSCCON = xxx;
Cái chỗ xxx là tùy vào từng chip và được nêu trong datasheet
(trình tiếng anh của em kém quá nên không dám dịch, bạn nào cùng quan tâm thi nhờ bác google giúp như em)

đấy, tự hỏi rồi tự trả lời, đúng sai cũng tự không rõ luôn,
Cảm ơn các anh chị nếu có chỉ dẫn thêm!


Múi giờ GMT. Hiện tại là 09:59 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam