Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Tùy vào từng loại...mỗi con có giới hạn cho ISR (hay là Program counter).
Như dòng 16F hay dùng là 16F877A thì là 20MHz...chia ra thì có 5 triệu lệnh trên giây.
Dòng 18Fxx thì chắc cũng thế.
Thấy bảo dòng DSPIC còn nhanh hơn 30 triệu lệnh trên giây.
Chả hiểu gì cả. Cụ thể nếu bị giới hạn thì là thời gian thực hiện ISR tối đa là bao nhiêu?
Mong các bác trả lời chi tiết hơn.
Cám ơn
Chả hiểu gì cả. Cụ thể nếu bị giới hạn thì là thời gian thực hiện ISR tối đa là bao nhiêu?
Mong các bác trả lời chi tiết hơn.
Cám ơn
ac...thế này nhé ...xung clock hay dùng cấp từ thạch anh...ở PIC16 tối đa là 20M...xung này làm cho VDK hoạt động theo nhịp...bộ đếm chương trình thì tự động tăng nhờ có clock...cung cấp địa chỉ cho IR ... nói chung là thòi gian để thực hiện lệnh là phụ thuộc một mặt vào tốc độ thạch anh...ở đây PIC thực hiện 4 chu kỳ đồng hồ thì được một lệnh...nghĩa là khoảng (2us với 20M)
Với CCS :PIC 16F dùng ngắt mềm , do đó CCS sinh mã hệt như khi ta dùng ASM , cũng hỏi vòng và kiểm tra cờ ngắt ( nếu bạn lập trình dùng hơn 1 ngắt ) .Làm sao thay đổi ưu tiên hỏi vòng ? dùng #priotity . Còn nếu muốn tự mình làm mọi thứ thì dùng ngắt #GLOBAL để tự viết ngắt , lưu thanh ghi W và hỏi vòng . Nhưng phải nhớ là không được thêm bất cứ hàm ngắt nào khác , VD #Int_timer1 , . . .
PIC 18 : phức tạp hơn trên CCS , cách dùng tôi có nói rõ trong bản CCS tiếng việt trên picvietnam.com
Các bạn có thể gửi cho mình các link nói về ngắt trong CCS của diễn đàn k?
link của noisepic post lên bị died rùi.
Mình đang rất cần, rất mong được sự giúp đỡ của các bạn.thanks..........
Mình đang học PIC 16F877a nhưng bằng ngôn ngữ ASM.các bạn ai có đoạn Code nào viết về ngắt trên RB4:RB7 bằng ngôn ngữ ASM không cho mình xin với.Thanks!
HELP ME
minh dang hoc con pic 16f877.minh thu test ngat ngoai RB.theo nhu minh chay chuong trinh bang tay thi thay OK.nhung khi mo phong bang protues thi lai gap vande.minh chi thuc hien ngat co 1 lan nhung chuong trinh lai luon chay ham ngat ma ko lam viec trong ham main nua(cu the la no khi thuc hien ngat thi no khong hieu ham WHILE ).cac ban xem giup va chi cho minh cach khac phuc cai nay nhe,day la chuong trinh va file mo phong protues cua minh.
link: http://www.mediafire.com/?y4zjfjz2lwm
HELP ME
minh dang hoc con pic 16f877.minh thu test ngat ngoai RB.theo nhu minh chay chuong trinh bang tay thi thay OK.nhung khi mo phong bang protues thi lai gap vande.minh chi thuc hien ngat co 1 lan nhung chuong trinh lai luon chay ham ngat ma ko lam viec trong ham main nua(cu the la no khi thuc hien ngat thi no khong hieu ham WHILE ).cac ban xem giup va chi cho minh cach khac phuc cai nay nhe,day la chuong trinh va file mo phong protues cua minh.
link: http://www.mediafire.com/?y4zjfjz2lwm
Em có đoạn chương trình sau dùng để hiển thị chữ lên LCD dùng ngắt nhưng không được.
Dây là code va sơ đồ nghuyên lý.
Rất mong mọi người chỉ cho em chỗ sai.
HELP ME
minh dang hoc con pic 16f877.minh thu test ngat ngoai RB.theo nhu minh chay chuong trinh bang tay thi thay OK.nhung khi mo phong bang protues thi lai gap vande.minh chi thuc hien ngat co 1 lan nhung chuong trinh lai luon chay ham ngat ma ko lam viec trong ham main nua(cu the la no khi thuc hien ngat thi no khong hieu ham WHILE ).cac ban xem giup va chi cho minh cach khac phuc cai nay nhe,day la chuong trinh va file mo phong protues cua minh.
link: http://www.mediafire.com/?y4zjfjz2lwm
Sao không thấy dòng này: enable_interrupts(GLOBAL);
Nếu trong hàm ngắt bác sử dụng hàm delay_ms(xx) mà trong chương trình nền cũng dùng hàm này thì rất có khả năng chương trình không chạy. Tui chưa biết nguyên nhân vì sao vì tui cũng mới làm với PIC chưa nhiều nhưng thực tế tui đã gặp tình huống này. Kinh nghiệm nữa của tui là trong hàm xử lý ngắt tốt nhất không dùng hàm delay, các hàm ngắt cần thực thi thời gian càng ngắn càng tốt. Nếu không thể thực hiện thời gian ngắn thì nên set một cờ nào đó rồi chuyển bớt qua chương trình nền. Trong trường hợp xử lý bàn phím thì nên chống rung cứng bằng cách nối song song với 1 tụ gốm 100n (104) không nên dùng hàm delay để chống rung.
Đó là chút ít kinh nghiệm tui có được khi làm việc với PIC. Chúc bác thành công.
Thân ái.
Đường đến những ngày vinh quang không còn xa
Con đường chúng ta... chúng ta đã chọn.
Sao không thấy dòng này: enable_interrupts(GLOBAL);
Nếu trong hàm ngắt bác sử dụng hàm delay_ms(xx) mà trong chương trình nền cũng dùng hàm này thì rất có khả năng chương trình không chạy. Tui chưa biết nguyên nhân vì sao vì tui cũng mới làm với PIC chưa nhiều nhưng thực tế tui đã gặp tình huống này. Kinh nghiệm nữa của tui là trong hàm xử lý ngắt tốt nhất không dùng hàm delay, các hàm ngắt cần thực thi thời gian càng ngắn càng tốt. Nếu không thể thực hiện thời gian ngắn thì nên set một cờ nào đó rồi chuyển bớt qua chương trình nền. Trong trường hợp xử lý bàn phím thì nên chống rung cứng bằng cách nối song song với 1 tụ gốm 100n (104) không nên dùng hàm delay để chống rung.
Đó là chút ít kinh nghiệm tui có được khi làm việc với PIC. Chúc bác thành công.
Thân ái.
Dùng delay trong ngắt và cả main ??? Nếu dùng trong ngắt mà quá trình xảy ra ngắt liên tục ( trong lúc delay thì sẽ bị Đệ Qui là cho pic không chạy được nữa . Vì thế nhiều trình dịch thường cảnh báo, cấm không cho dùng ở cả ngắt và main.
--- Dĩ nhiên trong ngắt ta vẫn có thể dùng delay (tự tạo hàm) và main dùng delay ( khác - thư viện có sẵn chẳng hạn) .... dùng delay trong ngắt thì trước nó ta disable ngắt đi... để ngắt làm việc bình thường ( như trong main) hết delay ta lại enable ngắt lại.
Nguyên văn bởi xuanthuytd than men trong ngat rb thi ban chu y dong chu " cu co mot tac dong canh len or xuong thi xay ra ngat rb ko phan biet la canh nao ,mien la co su thay doi trang thai la ngat rb xay ra.do do trong ngat ban phai xet them tha nút nhấn ra chua roi moi thoat ngat"
Dạ từ bé cháu chỉ dám loanh quanh ở bản thôi ạ hông dám ra ngoài đâu. Chú nhat...với bác vi... nên hạn chế uống rượu, giành thời gian trồng rau, tập dưỡng sinh và thi thoảng ăn chay ạ...
Cảm ơn meomuop đã chỉ dẫn. Mình làm theo lời khuyên đầu tiên của bạn " tìm dây và nối lại". Mắt tuy kém nhưng ngồi bình tĩnh vẫn tìm được và đã nối xong như hình. Cảm ơn bạn rất nhiều nhé....
Dạ chú tìm dây và nối lại ạ. Ko thì chú cắt vứt cuộn ấy đi rồi nối dây bỏ qua cuộn ấy. Hoặc là quấn lại cuộn ấy thì càng tốt, chú ý số vòng dây và hướng quấn để đấu nối...
Mình có cái quạt trần điện cơ, xông điện vào không chạy . Dỡ xuống tháo ra quan sát thấy một đầu dây trong một bối dây bị đứt thò ra goài. Quạt cố, cả cuộn làm việc và cuồn đề bố trí thành một vòng . Xin xem ảnh kèm theo. Đo trở...
Comment