PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 16-10-2012, 11:31 PM   #1
chiviyeu_ltk91
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 10
:
Cần tư vấn về PWM cho pic18f4331.

Chào các bác.
Tình hình là e bị giao bài tập về nhà.
Đề khoai quá.e thì mới học pic nên cũng chưa rõ lắm.(gà).hề.
Các pro giúp em băm xung 4 lỗ độc lập.điều khiển động cơ.
Em mới viết dc mấy dòng code thế này;
////////////////////////////////////////////////////////////////
#include <p18f4431.h>
#include <stdio.h>
#include <delays.h>

//---------------------------------Cau hinh chip------------------------------------
#pragma config OSC = HS
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRTEN = OFF
#pragma config BOREN = OFF
#pragma config WDTEN = OFF
#pragma config T1OSCMX = OFF
#pragma config HPOL = HIGH
#pragma config LPOL = HIGH
#pragma config PWMPIN = OFF
#pragma config MCLRE = ON
#pragma config EXCLKMX = RD0
#pragma config PWM4MX = RB5
#pragma config SSPMX = RD1
#pragma config FLTAMX = RC1
#pragma config STVREN = OFF
#pragma config LVP = OFF
#pragma config DEBUG = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRT2 = OFF
#pragma config WRT3 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
//-----------------------------------end---------------------------------------------
//------------------------------khoi ham tao tre----------------------------
void delay (void)
{
Delay10TCYx(2);
}
void delay_ms(int us)
{
int ims;
for(ims=0;ims<us;ims++)
{
Delay1KTCYx(4);
Delay100TCYx(10);
}
}
void delay_s(int ms)
{
int ims;
for(ims=0;ims<ms;ims++)
{
delay_ms(1000);
}
}
//----------------------------- end-----------------------------

//-------------------Khoi ham khoi tao-----------------------------
void Init_Interrupt(void)
{
//Cho phep ngat ngoai 0,1,2; Ngat uu tien cao
RCONbits.IPEN = 1;
INTCON = 0b11010000;
INTCON2 = 0x00;
INTCON3 = 0b11011000;
PIR1 = 0x00;
PIR2 = 0x00;
PIR3 = 0x00;
PIE1 = 0x00;
PIE2 = 0x00;
PIE3 = 0x00;
IPR1 = 0x00;
IPR2 = 0x00;
IPR3 = 0x00;
}
void Init_PWM(void)
{
PTCON0 = 0x00; //Postscale 1:1, Prescale 1:1, Free Running
PTCON1 = 0x80; //PWM time base is on, Count Up!
PWMCON0 = 0x4F; //Enable PWM0-5, Independent Mode
PWMCON1 = 0x00;
/////////////////////////////////////////////////////////
Mớ có thế thui.giúp em với các anh các chị ơi.
chiviyeu_ltk91 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-10-2012, 04:05 PM   #2
chiviyeu_ltk91
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 10
:
Không có ai giúp em ak.
chiviyeu_ltk91 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-10-2012, 10:48 AM   #3
binhbk247
Đệ tử 2 túi
 
Tham gia ngày: Jun 2011
Bài gửi: 37
:
Bạn lập trình bằng soft gì vậy. Mình dùng CCS thì trong CCS có sẵn các hàm cho module power pwm, còn bạn dùng soft khác thì mình ko rành, mình share cho bạn code bằng CCS nhé

Đề điều khiển 4 động cơ thì đơn giản nhất là dùng 4 chân pwm1, pwm3, pwm5, pwm7 của module power pwm để điều khiển

setup_power_pwm(pwm_clock_div_4|pwm_free_run,1,0,6 25,0,1,0); //cài đặt tần số xung 8kHz
setup_power_pwm_pins(pwm_odd_on,pwm_odd_on,pwm_odd _on,pwm_odd_on); // cho phép xuất xung các chân lẻ

set_power_pwm0_duty(0); //xuất xung chân pwm1
set_power_pwm2_duty(0); //xuất xung chân pwm3
set_power_pwm4_duty(0); //xuất xung chân pwm5
set_power_pwm6_duty(0); //xuất xung chân pwm7

giá trị duty từ 0-2500
binhbk247 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-04-2013, 04:42 PM   #4
navypro_hvhq
Đệ tử 1 túi
 
Tham gia ngày: Aug 2012
Bài gửi: 24
:
Trích:
Nguyên văn bởi binhbk247 View Post
Bạn lập trình bằng soft gì vậy. Mình dùng CCS thì trong CCS có sẵn các hàm cho module power pwm, còn bạn dùng soft khác thì mình ko rành, mình share cho bạn code bằng CCS nhé

Đề điều khiển 4 động cơ thì đơn giản nhất là dùng 4 chân pwm1, pwm3, pwm5, pwm7 của module power pwm để điều khiển

setup_power_pwm(pwm_clock_div_4|pwm_free_run,1,0,6 25,0,1,0); //cài đặt tần số xung 8kHz
setup_power_pwm_pins(pwm_odd_on,pwm_odd_on,pwm_odd _on,pwm_odd_on); // cho phép xuất xung các chân lẻ

set_power_pwm0_duty(0); //xuất xung chân pwm1
set_power_pwm2_duty(0); //xuất xung chân pwm3
set_power_pwm4_duty(0); //xuất xung chân pwm5
set_power_pwm6_duty(0); //xuất xung chân pwm7

giá trị duty từ 0-2500

bác có thể dạy em thêm chút về tạo PWM theo quy luật của bange giá trị sine không em đang cần thanks bác nhiều
navypro_hvhq vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-10-2012, 01:11 PM   #5
chiviyeu_ltk91
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 10
:
Em viết bằng ngôn ngữ C bác ak. code của bác viết bằng CCS em chả biết tị gì.hj.
Dù sao thì cung thank bác nhiều.
chiviyeu_ltk91 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2012, 08:45 PM   #6
trungkien0911
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 5
:
chiviyeu_ltk91 b nói thế là bó tay rồi vì CCS là phần mềm viết bằng ngôn ngữ C cho PIC mà
trungkien0911 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bà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à 04:04 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