Em có tí thắc mắc về PWM !
các anh ơi . cho em hỏi 1 tí về phần PWM con 16F877A. tình hình hiện tại là em muốn tạo xung ra ở 3 chân PORTB là RB0,RB1,và RB2 dùng PWM, vậy có được không ạ. hay chỉ có thể tạo 1 xung thôi? ( em đang viết trên ASM). mong được giúp đỡ.
|
Trích:
Thân, |
Cảm ơn anh đã quan tâm bài em.em xin lỗi vì chưa đọc kĩ tài liệu mà hỏi vậy.à vậy là chỉ có 2 chân RC1/CCP2 và RC2/CCP1 mới dùng được trong PWM.em muốn là viết chương trình dùng PWM tạo 2 xung ở 2 chân này mãi mãi luôn.còn những pin khác làm vấn đề khác,ví dụ đọc ADC,..nghĩa là vừa tạo xung,vừa làm chuyện khác.không biết có được không anh nhỉ?à cho em hỏi luôn,em dùng proteus mô phỏng thử chân RA0 là ngõ ra(đã khai báo I/O)làm sáng thử 1 chú led mà sao không được ta.phải chăng em phải khai báo nó là chân Output digital phải không anh?nếu là input thì em cũng phải khai báo là in digital à.anh cho em ví dụ khai báo RAO là input đi.cho em hiểu vấn đề với.cảm ơn anh nhiều.
|
bạn chỉ cần setup ccpx ở chế độ pwm
setup_ccp1(ccp_pwm); và thiết lập lập duty(độ rộng xung) cho nó set_pwm1_duty(value); tại những thời điểm khác nhau bạn có thể thay đổi duty cho nó nó sẽ tạo xung mãi mãi đến khi nào bạn bạn setup nó làm việc ở chế độ khác hay ccp_of để cho các chân là đầu ra hay đầu vào banj chỉ cần set_tris_x(xx) vd all port là đầu vào : set_Tris_a(0xff); RA0 là đầu vào còn lại là đầu ra : set_tris_a(0x01); bít đó là 1 là đầu vào,0 là đầu ra |
Anh có thể cho em biết cụ thể về thiết lập duty cycle tại những thời điểm khác nhau được không ạ!ví dụ minh họa thì tốt quá.C òn về chuyện cái PORTA em thử viết 1 ví dụ mà em thử chạy mà không thấy tín hiệu gì hết nhe:
Code:
PROCESSOR 16F877A |
ec ec. các bạn cùng mình trao đổi đi nào. làm gì mà chẳng ai thèm trao đổi thế nhỉ. giấu nghề à. vậy tham gia picvietnam làm gì. chả nhẽ không phải học hỏi lẫn nhau?????
|
Hic.có vẻ như mọi người ít hứng thú với ASM lắm thì phải.tội nghiệp thân tôi.học dốt C quá nên bây giờ mới khổ đây mà.heyd.
|
Trích:
|
Uh.thôi từ nay đi tìm sư học C để theo kịp anh em vậy.
|
Trích:
Thân, |
Dạ em đã lấy rồi mà.mấy con led đó em dùng hoài chứ đâu.còn đoạn code ý em là em cho RAO mức logic ở ngõ vào.nếu RAO lên 1 thì led chân RBO có điện trở 330 đi kèm sẽ sáng mãi theo GOTO $.vậy mà không thấy led sáng anh ạ.
|
Trích:
Thân !! |
sao bạn lại cần dòng lệnh này?
BTFSC PORTA,0 GOTO MAIN nếu bạn chỉ muốn Led sáng thì cần dòng lệnh này làm j |
Ý em ở đây là em cho mức logic ở ngõ vào RA0(0 và 1).bình thường là mức 0,khi em cho RA0 lên mức 1 thì led tại chân RB0 sẽ sáng lun.thế đấy mà làm hoài chẳng được.anh nào cho em vài ví dụ dùng PWM tại những thời điểm khác nhau với.để em thấy được tầm quan trọng của PWM,chứ như giờ thì mơ hồ quá.
|
Bạn thử khai báo RA0 là ngõ vào D như trong khai báo ADC thử xem!
|
Múi giờ GMT. Hiện tại là 09:31 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam