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 24-01-2007, 10:04 AM   #1
tranvu_hop
Nhập môn đệ tử
 
Tham gia ngày: Apr 2006
Bài gửi: 5
:
Pwm

Em có 2 cách viết như thế này để điều khiển công suất động cơ mức 50 %

C1:
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_timer_2(T2_DIV_BY_16, 249, 1);
set_pwm1_duty(500L);

C2:
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_timer_2(T2_DIV_BY_16, 249, 1);
set_pwm1_duty(125);

cách nào đúng??

thay đổi nội dung bởi: tranvu_hop, 24-01-2007 lúc 10:39 AM.
tranvu_hop vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-01-2007, 06:32 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi tranvu_hop View Post
Em có 2 cách viết như thế này để điều khiển công suất động cơ mức 50 %

C1:
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_timer_2(T2_DIV_BY_16, 249, 1);
set_pwm1_duty(500L);

C2:
setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM
setup_timer_2(T2_DIV_BY_16, 249, 1);
set_pwm1_duty(125);

cách nào đúng??
Cách 1 đúng. Sao không chạy thử chương trình trên chip thật?

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007, 08:51 AM   #3
tranvu_hop
Nhập môn đệ tử
 
Tham gia ngày: Apr 2006
Bài gửi: 5
:
Em muốn hỏi là tại sao fải để là
set_pwm1_duty(500L)
500L, nếu bỏ L đi thì sao, em chưa hiểu chỗ này. Mong các anh chỉ đáp
tranvu_hop vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007, 10:51 AM   #4
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
Trích:
Nguyên văn bởi tranvu_hop View Post
Em muốn hỏi là tại sao fải để là
set_pwm1_duty(500L)
500L, nếu bỏ L đi thì sao, em chưa hiểu chỗ này. Mong các anh chỉ đáp
Lệnh set_pwm1_duty(value); dùng xác định duty cho xung PWM trên chân CCP1.

Tùy theo kiểu của value mà cách tính khác nhau.

- Nếu value là giá trị kiểu int 8bit thì CCS C sẽ dịch trái 2 bit để đủ 10bit

Công thức tính: %duty = value/(PR2 +1)*100%

- Nếu value là giá trị long int 16bit thì CCS C sẽ bỏ đi 4 bit cao

Công thức tính: %duty = (value & 1023)/(4*(PR2 +1))*100%

Chú ý rằng nếu bác set giá trị duty vượt quá 100%, thì ôi thôi chân điều chế xung nó không bị xóa về mức thấp nữa.

Hai đoạn code sau đều cho giá trị duty 50% trên chân CCP1:
Code:
int value = 128;
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_16, 255, 1);
set_pwm1_duty(value);
Code:
int16 value = 512;
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_16, 255, 1);
set_pwm1_duty(value);
Hôm sau sẽ gởi cho mấy bác chương trình tính toán pwm trực quan, đơn giản nhưng hiệu quả.
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007, 06:10 PM   #5
tranvu_hop
Nhập môn đệ tử
 
Tham gia ngày: Apr 2006
Bài gửi: 5
:
Cảm ơn bạn đã trả lời, câu trả lời của bạn dễ hiểu quá !
tranvu_hop vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007, 06:19 PM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Cám ơn bạn nhh!

Tôi không dùng CCS C nên không trả lời tốt như những bạn đã dùng CCS C nhiều. Mong các bạn hỗ trợ cho các thành viên trên diễn đàn hơn nữa, vì riêng một ai đó đều không thể hỗ trợ mọi thứ thật tốt được.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-01-2007, 09:46 AM   #7
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
File Kèm Theo
File Type: rar CCS_C_PWM.rar (206.0 KB, 853 lần tải)
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-01-2007, 08:39 PM   #8
tranvu_hop
Nhập môn đệ tử
 
Tham gia ngày: Apr 2006
Bài gửi: 5
:
Trích:
Nguyên văn bởi nhh View Post
Đang ký cái file *.ocx như thế nào ấy nhỉ ?
Nếu ko máy ko nhân ?
Nó báo thiếu file Comctl32.ocx

thay đổi nội dung bởi: tranvu_hop, 27-01-2007 lúc 09:21 PM.
tranvu_hop vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2007, 06:36 PM   #9
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
Chương trình viết bằng VB, bạn cài VB thì OK, nếu ko xem thiếu các file cần thiết nào thì tìm đặt vào cùng thư mục đó.
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-06-2007, 11:20 PM   #10
che
Nhập môn đệ tử
 
che's Avatar
 
Tham gia ngày: Jun 2007
Bài gửi: 9
:
em mới gia nhập gia đình Pic,em thấy các bài viết của bác nhh rất hay,dễ hiểu ,em mới mua được con 18F4431 để điều khiển 2 động cơ một chiều từ máy tính,nếu bác đã làm con này rồi thì xin bác cho em một số lưu ý về nó nhé để em làm nhanh hơn ,khỏi mò mẫm lâu lắm bác ạ. thanks bác !
che vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-07-2007, 05:12 PM   #11
hvktdk9
Đệ tử 1 túi
 
Tham gia ngày: Oct 2005
Bài gửi: 11
:
Trong chương trình bạn đã khai báo cấu hình cho Pic là cho phép sử dụng chế độ PWM chưa. Cái này rất quan trọng trong việc sử dụng PWM.

thay đổi nội dung bởi: namqn, 12-07-2007 lúc 06:50 PM. Lý do: sửa lại vài lỗi đánh máy
hvktdk9 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-10-2007, 04:36 PM   #12
tmtm
Đệ tử 4 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 79
:
Các anh chỉ giúp em các thông số trong dòng lệnh:
setup_timer_2(T2_DIV_BY_16, 255, 1);
có nghĩa gì? E chưa hiểu? và nếu lập trình để điều chỉnh tốc độ động cơ DC thay đổi trơn từ một giá trị này tới một giá trị khác thì phải viết thế nào? và thay đổi tốc đọ nhảy cấp thì làm thế nào?
tmtm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-10-2007, 11:44 AM   #13
Nguoidumuc204
Nhập môn đệ tử
 
Nguoidumuc204's Avatar
 
Tham gia ngày: Oct 2007
Bài gửi: 6
:
Các bác cho em hỏi là tại sao chương trình em viết thế này mà không chạy,
Em mới ra nhập làng PIC nên chưa hiểu rõ lắm.
Trích:
Nguyên văn bởi Code
#include <16F877.h>
#use delay(clock = 4000000)
#include <lcd.c>
#FUSES NOWDT , HS , NOPROTECT

unsigned char i=0 ;
int16 a ,b;

#int_TIMER0
void TIMER10_isr(void)
{
i++;
if (i>=255) i=0;
}

void main()
{
lcd_init();
delay_us(10);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
while(1)
{
TIMER1_isr();
lcd_gotoxy(1,1);
printf(lcd_putc," timer is : %u",i);
}
}
Kết quả là màn hình LCD trắng rã ,chẳng nhìn thấy gì thay đổi cả.
Nguoidumuc204 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-10-2007, 06:10 PM   #14
tmtm
Đệ tử 4 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 79
:
Câu hỏi của em thiếu 'Iốt' quá hay sao mà chẳng thấy ai thèm bắt nhời cả vậy. Anh nào giúp em đi, được ý nào, em cảm ơn ý đó!
tmtm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-10-2007, 12:33 AM   #15
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
thạch anh 4M thì khai báo là XT chứ ko phải là HS bạn ơi !
Mr.Bi 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à 03:57 AM.


Đượ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