19-05-2010, 05:10 PM | #1 |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
các bác nào giúp em khởi tạo timer1 zoiii
bác nào khởi tạo timer1 để tạo thời gian trễ 5s dùm em với
cám ơn các bác nhiều à em dùng em 16f88 GIE=1; PIE1=1; TMR1IE=1; TMR1IF=0; TMR1CS=0; T1SYNC = 0; T1OSCEN = 0; T1CKPS1=1; T1CKPS0=1; em khởi tạo vậy đúng ko nhỉ? sao ko thấy chạy nhỉ? thay đổi nội dung bởi: kiemkhach10, 19-05-2010 lúc 10:24 PM. |
20-05-2010, 08:03 AM | #2 |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
ko bác nào giúp em à?em đang cần gấp lắm mà!
em đã thử cả 100 lần rùi mà ko được. đã gãy chân mất 2 em 16f88 rùi.cứ phải tháo ra tháo vào mà ko xong. bác nào đã khởi tạo thành công 5s trong timer1 của pic 16f88 thì giúp em cái cám ơn các bác nhiều! em sài Hi-TechPic |
20-05-2010, 09:59 AM | #3 | |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
Trích:
nhưng khởi tạo mãi ko được do vậy chẳng thể làm gì. còn kiểm tra thì đơn giản mà bạn.chỉ việc tính đúng 5s thì cho 1 led nháy nhưng cái đó đòi hỏi phải khởi tạo thành công timer1 đã chẳng nhẽ mọi người ko ai sử dụng timer1 hay sao ý buồn quá! |
|
21-05-2010, 08:26 AM | #4 |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
hic mình đã đợi gần 1 tuần mà chuă thấy bạn nào hồi âm hết.
đây là code mình viết: MÌNH DÙNG PIC 16F88. void main(void) { timer1_init(); while(1) { if(RA2==1) { RA3=1;//RA3 NỐI VỚI CÒI BÍP } } } ////// timer1_init() { GIE=1;//cho phep ngắt tổng PIE1=1;// cho phép ngắt ngoại vi TMR1IE=1;//cho phép ngắt timer1 TMR1IF=0;//xóa cờ ngắt TMR1H =0;// giá trị ban đầu của timer1 TMR1L =0; TMR1CS=0;//chon xung fso/4 T1RUN=0;//cái nay mới thấy lần đầu,chắc là cho phép chạy chế độ timer1 T1OSCEN = 1; T1CKPS1=1;//chọn độ chia 1:8 T1CKPS0=1; TMR1ON=1; //bắt đầu chạy timer1 } void interrupt inter1(void) { RA2=1//RA2 NỐI VỚI 1LED đơn TMR1H =0; TMR1L =0; TMR1IE=1; TMR1IF=0; TMR1ON=1; } CODE MÌNH KO THẤY GÌ SAI,NHƯNG SAO TIMER1 KO CHẠY NHỈ? CÁC CAO THỦ XEM DÙM EM CÁI! CÁM ƠN RẤT NHIỀU! |
21-05-2010, 08:34 AM | #5 |
Đệ tử 3 túi
Tham gia ngày: Feb 2009
Bài gửi: 47
: |
Bạn vào đây C:\program files\PICC\Examples đọc bài EX_STWT.C của CCS xem họ khởi tạo Timer thế nào rồi tính tiếp.
__________________
tatcachilanguybien |
21-05-2010, 10:40 AM | #6 | |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
Trích:
khổ thân tui thế bạn có thê port cái EX_STWT.C của CCS cho mình xem được ko?mạng chỗ mình yếu lắm ,chắc download lâu quá mà lại hay bị đứt mang nứa. cám ơn bạn nhiều! |
|
21-05-2010, 11:54 AM | #7 | |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
Trích:
bạn port hộ mình cái ví dụ dùng timer1 trong ccs ,để mình tham khảo cái,vì mình download hoài mà ko được. cám ơn bạn nhiều |
|
21-05-2010, 10:52 PM | #8 | |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
Trích:
bạn cho mình hỏi thêm (#define T1_INTERNAL 0x85) thì các bít nào =1 và các bít nào =0.và nó ở thanh ghi nào? cám ơn nhiều |
|
21-05-2010, 11:18 PM | #9 |
Đệ 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; } 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. thay đổi nội dung bởi: ngocthanh07, 21-05-2010 lúc 11:31 PM. |
22-05-2010, 07:11 AM | #10 | |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
Trích:
đê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? |
|
22-05-2010, 09:03 AM | #11 |
Đệ tử 2 túi
Tham gia ngày: Mar 2007
Bài gửi: 44
: |
Hì, việc này bạn xem ví dụ của HT PIC nhé, theo như ví dụ này, bạn chỉ có một hàm ngắt chung cho các ngắt, trong hàm ngắt bạn phải kiểm tra cờ ngắt của từng đứa. (Liên quan đến vụ vector ngắt và source ngắt của con PIC của bạn, hình như nó chỉ có 1 vector ngắt thôi). Tức là bạn phải kiểm tra cờ T0IF, T1IF trong chuơng trình ngắt. Không dùng hai hàm ngắt được.
Thêm một điều, bạn có thể không QUOTE bài của mìnhd duợc không vậy, vui lòng bỏ phần QUOTE đó ra dùm. Các bài đó có giá trị gì đâu QUOTE làm gì, để tài nguyên cho cái nào có ý nghĩa hơn. |
22-05-2010, 06:23 PM | #12 |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
ok.cám ơn bạn nhiều, để mình xem lại.
đúng là pic chỉ có 1 vecter ngắt ở địa chỉ 0x04. dù sao cũng cám ơn ban nhiều.đã giúp mình khá nhiều chúc vui! |
|
|