PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 02-06-2010, 12:48 AM   #5
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi vanlv View Post
Ý mình không phải vậy. Ý mình là: giả sử khi bắt đầu có xung thì timer1 sẽ đếm và đến khi bắt đầu đến sườn âm sẽ làm ngắt con PIC và khi ngắt xảy ra thì PIC làm nhiệm vụ lấy số đếm đó truyền ra máy tính và hiển thị lcd. Sau khi gửi số liệu ra máy tính thì PIC ra lệnh start để đếm xung tiếp đó. Mình mới chỉ biết gửi ra máy tính 1 chuỗi sau khi có ngắt ngoài còn số liệu sau khi get_timer1 thì vẫn chưa biết.
đầu từ có tốc độ xung quá nhanh ==> mỗi xung cách nhau thời gian ngắn thì liệu rằng việc hiển thị ra LCD + truyền lên PC có update kịp k ?

t hỉu í u là đang đo lấy thời gian giữa 2 xung . nếu t k nhầm thì đây chính là tính toán để làm led quay ma trận 1 cột (Propeller) . U nên làm thế này :
- Dùng chân timer0 nhận ngắt ngoài . Vô hàm ngắt ngoài , nếu lần ngắt đầu tiên thì cho biến c=1 , lần ngắt thứ 2 thì cho biến c=2 (nên dùng hàm switch() case )
- trong hàm main , nếu biến c=1 thì cho 1 biến d++ . Biến d cứ tăng đến khi nào c=2 thì dừng (có lẽ biến d nên là int16 hoặc là int32) .
- sau khi c=2 . Cho cấm ngắt ngoài , sử lí : truyền PC, gửi ra LCD , xóa biến d , xóa biến c , delay_1s để nhìn thấy giá trị . Chạy lại chưong trình

Vì rằng gia tốc của động cơ gần như k đổi nên cách này mới chạy đc . Chưong trình của u dùng quá nhìu hàm có sẵn (có lẽ chưa hiểu ngọn ngành nó hoạt động ra sao mới dùng hàm có sẵn
Trích:
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_DIV_2|RTCC_INTERNAL); //Timer0 lam bo dem thoi gian
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1); //Timer1 dem xung ngoai (lay tu dau ghi)
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(GLOBAL); //Khoi tao cho ngat toan cuc
enable_interrupts(INT_TIMER0); //Khoi tao cho ngat timer0
enable_interrupts(INT_TIMER1); //Khoi tao cho ngat timer1
enable_interrupts(INT_EXT); //Khoi tao cho ngat ngoai
ext_int_edge(H_TO_L); //Chon suon am de xay ra ngat ngoai
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
ngắt, số liệu


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam