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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-10-2010, 12:56 PM   #1
canhtoantdh
Đệ tử 1 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 13
:
pwm của pic 16f877a bằng ccs

anh em cho mình hỏi tại sao tại chân ra của rc1 và rc2 không có xung ra. mình xem mãi mà không bit mình sai đâu mong nhận dc sự chỉ giáo của anh em trên diễn đàn
File Kèm Theo
File Type: rar robot 1.rar (15.2 KB, 424 lần tải)
canhtoantdh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-10-2010, 06:00 PM   #2
pic_13
Đệ tử 2 túi
 
pic_13's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 33
:
Trích:
Nguyên văn bởi canhtoantdh View Post
anh em cho mình hỏi tại sao tại chân ra của rc1 và rc2 không có xung ra. mình xem mãi mà không bit mình sai đâu mong nhận dc sự chỉ giáo của anh em trên diễn đàn
không vấn đề gì hết .đã kiểm tra cho bạn ,có xung đầu ra.
nhưng hình như chạy sai thì phải.
__________________
hãy sống cho ngày mai,đừng sống cho quá khứ
pic_13 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-10-2010, 10:30 PM   #3
canhtoantdh
Đệ tử 1 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 13
:
bạn ơi cho minhd hỏi luôn khi mình set_pwm3_duty(value),set_pwm4_duty(value),set_pwm5 _duty(value). sao không dc nhỉ? muốn dùng nó phải khởi tạo gì thêm?
canhtoantdh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-10-2010, 02:22 AM   #4
otacon
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 36
:
Đã kiểm tra bằng Proteus,tình hình là không thấy có xung gì hết,không biết có phải tại Proteus không!.
@ canhtoantdh : datasheet 16f877 chỉ có 2 bộ PWM thôi
otacon vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-10-2010, 11:27 PM   #5
hongmta
Đệ tử 2 túi
 
hongmta's Avatar
 
Tham gia ngày: May 2009
Bài gửi: 41
:
bạn up file mô phỏng cho mọi người coi, có thể bạn chưa có trở kéo dương trên 2 chân RC1, RC2,
Cheers!!
hongmta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-10-2010, 02:51 AM   #6
hongmta
Đệ tử 2 túi
 
hongmta's Avatar
 
Tham gia ngày: May 2009
Bài gửi: 41
:
Re

Trích:
Nguyên văn bởi canhtoantdh View Post
anh em cho mình hỏi tại sao tại chân ra của rc1 và rc2 không có xung ra. mình xem mãi mà không bit mình sai đâu mong nhận dc sự chỉ giáo của anh em trên diễn đàn
code lại cho bạn nè:
#include "16f877a.h"
#include "def_877a.h"
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=16000000)
#use fast_io(c)
void init()
{
// cai PWM bo dieu che xung cho dong co
set_tris_c(0x00);
setup_ccp1(CCP_PWM); // Bat che do PWM cho RC1
setup_ccp2(CCP_PWM);
set_pwm1_duty(300);//100%
set_pwm2_duty(300);//80%// Bat che do PWM cho RC2
setup_timer_2(T2_DIV_BY_16,200,1);//Ta co PR2=199,prescale=1
//Tpwm=[PR2+1]*4*1/clock*prescale=[199+1]*4/20000000*1=40 us
//Fpwm=1/Tpwm=25 kHZ
// set_tris_c(0b00000000);

}

void main()
{
init();

while (true)
{


}
}
hongmta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-10-2010, 12:01 PM   #7
thangkho89
Nhập môn đệ tử
 
Tham gia ngày: Feb 2010
Bài gửi: 7
:
thanks anh nhiu nhiu.em kiem tra xung da ok.van de nay e da buc xuc bay lau nay da duoc giai dap ^^.thankss
thangkho89 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-10-2010, 05:11 PM   #8
thangkho89
Nhập môn đệ tử
 
Tham gia ngày: Feb 2010
Bài gửi: 7
:
hongmta cho mình hỏi được không?

mình đã có viết lại code thế này

#include "16f877a.h"
#include "def_877a.h"
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT ,PUT
#use fast_io(a)//khai bao nay trong ccs chi thuc hien dung 1 lenh cho viec i/o
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
#use delay(clock=10000000)//thach anh 10 M
#define tien rd0
#define lui rd1
#define trai rd2
#define phai rd3
#define nang rd4
#define ha rd5
#define kep rd6
#define tha rd7
#define L1 ra1
#define R1 ra2
#define L2 ra3
#define R2 ra4
//khai bao cac chan ra cho dong co
#define pwm_dc_l rb6 //dong co trai
#define dir_l rb1 // dao chieu
#define pwm_dc_r rb7 //dong co phai
#define dir_r rb3 // dao chieu
#define dc_nang rb2 // dao chieu
#define dc_kep rb4 // dao chieu
//dinh nghia trang thai phim bam
#define bam 0
#define nha 1
//HAM CON
void setup_phim();
void retrai();
void rephai();
void cap1();
void cap2();
int duty1,duty2;

//khoi tao ngat timer0
void bamxung(int duty1,int duty2);

void main()
{
trise = trisb = trisc = 0x00;
trisd = trisa = 0xff;
portb = 0x00;
setup_ccp1(CCP_PWM); // Bat che do PWM cho RC1
setup_ccp2(CCP_PWM);
while(true)
{
setup_phim();
}
}
void setup_phim()
{

if((tien == bam))
{
bamxung(310,475);
}
else if((tien = lui = trai = phai = nang = ha = kep = tha == nha))
{
bamxung(0,0);
}

}

void bamxung(duty1,duty2)
{
set_pwm1_duty(duty1);
set_pwm2_duty(duty2);
setup_timer_2(T2_DIV_BY_16,154,1);//Ta co PR2=199,prescale=1
}

Theo như mình tính thì duty1 và duty2 = 620 thì chạy 100%
nhưng ở code này khi mình set 2 pwm thì xung ra lại không như thế.

giả sử mình muốn pwm1 là 50% và pwm2 là 75% thì không thể làm được,
nếu để duty1 = duty2 thì cả 2 cũng đều ko thể đặt được 50% như mong muốn.
mình nghĩ là nó thực hiện hết duty1 rồi mới thực hiện duty2 có phải ko nhỉ.

rất mong được giúp đỡ.để mình send mô phỏng của mình bạn xem hộ nha
File Kèm Theo
File Type: rar test.rar (13.5 KB, 124 lần tải)

thay đổi nội dung bởi: thangkho89, 27-10-2010 lúc 05:46 PM.
thangkho89 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-12-2010, 12:31 PM   #9
trucanh2008
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 1
:
Điều khiển động cơ DC bằng PWM

Mình làm đồ án dùng PIC16F877A điều chế PWM để điều khiển động cơ DC quay thuận, nghịch và set các tốc độ cố định bằng các nút bấm. Mình viết đoạn code mà chưa biết nguyên nhân vì sao không có tín hiệu ra ở 2 chân CCP1, CCP2.
Anh em xem giùm nguyên nhân vì sao?
Mình gửi kèm sơ đồ nguyên lý mô phỏng bằng Proteus và đoạn code bên dưới. Mong mọi người chỉ giáo.
File Kèm Theo
File Type: rar Dong co DC.rar (27.1 KB, 203 lần tải)
trucanh2008 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-02-2011, 04:42 PM   #10
quangvanvo
Đệ tử 1 túi
 
Tham gia ngày: Jan 2011
Bài gửi: 18
:
các anh chị ơi em cũng viêt code cho pwm nhưng nó cũng không khi nào co xung hết. các anh chị có thể post lên cho em 1 chương trình cộng với protuse ma nó dã chạy tôt cho em với các anh chi. chương trình đơn giản thui chỉ càn thay đổi độ rộng của xung ra trên rc1 và rc2 thui
quangvanvo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-02-2011, 02:51 PM   #11
phuocduy137
Nhập môn đệ tử
 
Tham gia ngày: Dec 2009
Bài gửi: 2
:
May anh co chuong trinh proteus moi khong cho em xin voi.tren dien dan nay em tim mai ma kkhong thay
phuocduy137 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-02-2011, 02:54 PM   #12
phuocduy137
Nhập môn đệ tử
 
Tham gia ngày: Dec 2009
Bài gửi: 2
:
may anh co nghien cuu ve pic 18f4550 ko\?neu cpo goi bai cho em voi.thank may anh nhieu
phuocduy137 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 09:08 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