Tối ưu CODE chương trình!
Cái này hơi banana một tí, có lẽ bài viết này chẳng giúp gì được cho các bác ! Nhưng hãy đọc một chút cho vui vẻ.
Giả sử em có chương trình sau viết bằng CCS về cách sử dụng TIMER0
TMR0.C
Chương trình này chạy tốt không vấn đề gì cả. Và hãy so sánh với TMR0_optimize.C
2 chương trình này chẳng khác nhau gì mấy! Nhưng các bác để ý xem em để vị trí đặt giá trị trong chương trình là khác nhau. PIC thực hiện chương trình từ địa chỉ đầu tiên cho đến khi kết thúc.Vị trí các thanh ghi theo thứ tự địa chỉ từ thấp lên cao sẽ tiết kiệm cho chương trình mấy us.
Vì khi xem dạng *.ASM của nó sẽ thấy PC nhảy từ bank này sang bank khác, rồi lại nhảy lại "tốn xăng quá". Và đây là KQ thu được khi chạy mô phỏng.
C_ trình TMR0
Instruction counter 182
Clock Cycles Counter 1044
Real time Duration 261
C_trình TMR0_optimize
Instruction counter 176
Clock Cycles Counter 1012
Real time Duration 253
Nó tiết kiệm cho các bác mấy us.
Nhưng mà ..em đã bảo các bác chỉ đọc cho vui thôi! !!!!!!
Chứ mấy us đáng gì so với giấc ngủ 8 tiếng của chúng ta.
Cái này hơi banana một tí, có lẽ bài viết này chẳng giúp gì được cho các bác ! Nhưng hãy đọc một chút cho vui vẻ.
Giả sử em có chương trình sau viết bằng CCS về cách sử dụng TIMER0
TMR0.C
Code:
// VIET HAM DELAY SU DUNG TIMER0 #include<16F88.h> #include<my_16F88.h> #fuses NOWDT,HS,NOPUT,MCLR,NOLVP,NOPROTECT #use delay(clock=4000000) main() { TRISB=0x00; PORTB=0xf; TRM0 =0x8f; OPTION_REG=0x00; INTCON=0x00; while(TMR0IF==0); }
Code:
// VIET HAM DELAY SU DUNG TIMER0 #include<16F88.h> #include<my_16F88.h> #fuses NOWDT,HS,NOPUT,MCLR,NOLVP,NOPROTECT #use delay(clock=4000000) main() { TRM0 =0x8f; PORTB=0x0f; INTCON=0x00; OPTION_REG=0x00; TRISB=0x00; while(TMR0IF==0); }
Vì khi xem dạng *.ASM của nó sẽ thấy PC nhảy từ bank này sang bank khác, rồi lại nhảy lại "tốn xăng quá". Và đây là KQ thu được khi chạy mô phỏng.
C_ trình TMR0
Instruction counter 182
Clock Cycles Counter 1044
Real time Duration 261
C_trình TMR0_optimize
Instruction counter 176
Clock Cycles Counter 1012
Real time Duration 253
Nó tiết kiệm cho các bác mấy us.
Nhưng mà ..em đã bảo các bác chỉ đọc cho vui thôi! !!!!!!
Chứ mấy us đáng gì so với giấc ngủ 8 tiếng của chúng ta.
Comment