PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 17-12-2008, 12:03 PM   #10
han_nang_008
Đệ tử 1 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 19
:
bác namqn giúp em thêm cái này nữa, em viết đoặn chtr điều khiển tốc độ động cơ dùng triết áp, điểm đầu và chuối mắc vào 0 và 5V, điểm giữa đưa vào AN0 của 30F4011, dùng L298,
với động cơ chưa có tải, và em để PWM là kich chuyển đổi ADC thì em chỉnh chiết áp thì tốc độ thay đổi rất trươn ko có vấn đề j cả, nhung em cho thêm cái tải là em dùng dây cô doa nối sang 1 động cơ khác thôi, là tụ nhiên 2 chạy rất giật, điều chỉnh tốc độ cũng bị giật mà để em 1 vị trí tốc độ thì nó chạy dc vài vông lại giật 1 cái, ở dải tốc độ thấp cả 2 con đều ko chay, em có chuyển sang dùng timer3 kích chuyển đổi thì có vẻ chạy ko bị giật hơn và ở giải tốc đọ thấp vẫn điều khiển dc, nhung chỉ cần hơi vặn nhanh triết áp 1 tí là vdk bị đơ và dc đứng yên. anh xem hộ em vơi
đây là code của em
Code:
------------------------------------------------------------------------------*/
#include <p30f4011.h>
#include <pwm.h>
#include <adc10.h>

	_FOSC(CSW_FSCM_OFF & FRC_PLL4);
	_FWDT(WDT_OFF);
	_FBORPOR(PBOR_OFF & MCLR_EN);
	_FGS(CODE_PROT_OFF);

//------------------------------------------------------------------------------
//Cac hang so cua chuong trinh (gia tri tuc thoi dung trong chuong trinh)
#define	PWM_PORT	PORTE		//Cac tin hieu PWM nam o cong E
#define	PWM_TRIS	TRISE		//Thanh ghi 3 trang thai cho cac tin hieu PWM
#define	PWM_LAT		LATE		//Thanh ghi chot cac tin hieu PWM

//Cac prototype cho cac chuong trinh con
void Init_PORTS(void);
void INT_MCPWM(void);
void INT_ADC10BIT(void);

//Chuong trinh Khoi tao Module MCPWM
//------------------------------------------------------------------------------
void INT_MCPWM(void)
{
	unsigned int config1, config2, config3;
	unsigned int period, sptime;

	
	period = 368; 					// Oche do Free run PTPER = fcy/fpwm/PTMRprescaler - 1 
									// fcy = 7.37 Mhz, Fpwm = 20 KHz, PTMRprescaler = 1 ==> PTPER = 
	sptime = 0;						//Thiet lap thanh ghi SEVTCMP cho viec tao ngat su kien dac biet(neu can)
		
	config1 = 	PWM_EN & 			//PWM Module Enable
				PWM_IDLE_STOP&		//Idle Mode Operation
				PWM_OP_SCALE1& 		//Output post scaler 1:1
				PWM_IPCLK_SCALE1& 	//input prescaler 1:1
				PWM_MOD_FREE; 		//mode of free run
	
	config2 = 	PWM_MOD1_IND&		//Dung cac chan PWM L&H 1 cach doc lap
				PWM_MOD2_IND&
				PWM_MOD3_IND&			
				PWM_PDIS1H&			//Chi dung chuc nang PWM voi chan PWM1L
				PWM_PDIS2H&
				PWM_PDIS3H&
				PWM_PEN1L&
				PWM_PDIS2L&
				PWM_PDIS3L ;
	
	config3 = 	PWM_SEVOPS16& 		//Special event post scaler
				PWM_OSYNC_TCY& 		//output Override synchronization
				PWM_UEN; 			//PWM update enable/disable
	
	OpenMCPWM(period, sptime, config1, config2, config3);

	PDC1=0;	
	}

//Chuong trinh Khoi tao Module ADC 10bit
//------------------------------------------------------------------------------
void INT_ADC10BIT(void)
{
	unsigned int config1, config2, config3, configport, configscan;
	unsigned int channel;
	
	
	channel =  ADC_CH0_POS_SAMPLEA_AN0 ;     // A/D Chan 0 pos i/p sel for SAMPLE A is AN0
	SetChanADC10(channel);
	
	config1 = 	ADC_MODULE_ON&
				ADC_IDLE_STOP&
				ADC_FORMAT_INTG&			//dinh dang ket qua là canh phai (right justify)
				ADC_CLK_MPWM&				//Module PWM cham dut lay mau va kich hoat
				ADC_SAMPLE_INDIVIDUAL &				
				ADC_AUTO_SAMPLING_OFF&		//bat dau lay mau khi SAMP =1
				ADC_SAMP_ON;				//Khoi dong che do tu dong lay mau
	
	config2 = 	ADC_VREF_AVDD_AVSS&			//lay Vdd va Vss lam dien ap tham chieu
				ADC_SCAN_OFF&
				ADC_CONVERT_CH0&
				ADC_SAMPLES_PER_INT_1&		//co bao AIDF va bit DONE duoc set sau 1 lan lay mau (so lan lay mau tu 1 den 16 do bit  SMPI <3:0>
				ADC_ALT_BUF_OFF&
				ADC_ALT_INPUT_OFF;
			
	config3 = 	ADC_SAMPLE_TIME_1&			//Thoi gian lay mau bang 1 Tad
				ADC_CONV_CLK_SYSTEM&
				ADC_CONV_CLK_2Tcy;		
	
	configport = ENABLE_AN0_ANA;			//Enable chân AN0 la chan analog
	
	configscan = SCAN_NONE;		
	
	OpenADC10(config1, config2, config3, configport, configscan);
	_ADIF = 0;								//Xoa co ngat ADC
	_ADIE = 1;								//Cho phep ngat ADC
	_ADON = 1;								//Bat module ADC
	
}
//Trinh phuc vu ngat cho ADC
//------------------------------------------------------------------------------
void _ISR _ADCInterrupt(void)
{	
	PDC1 = ADCBUF0;		//Cap nhat cac thanh ghi dem chu ky nhiem vu	
	_ADIF = 0;
}

//------------------------------------------------------------------------------
//Chuong trinh chinh
int main(void) {
	Init_PORTS();			//Khoi tao cac cong I/O
	INT_MCPWM();			//Khoi tao module PWM
	INT_ADC10BIT();			//Khoi tao module ADC
	while (1) Nop();
}

//Chuong trinh con khoi tao cac cong I/O, de xuat cac tin hieu PWM, va doc tin
//hieu dieu chinh cua bien tro tai AN0
void Init_PORTS(void) {
	PWM_LAT = 0;			//Xoa thanh ghi chot cac tin hieu PWM
	PWM_TRIS = 0xFFC0;		//Cac tin hieu PWM nam tai RE0..RE5
	TRISB = 0x0071;			//Chan RB6 la ngo vao analog AN6, cac chan khac
							//la ngo ra
	_LATE2 = 0;
}
và em đang mong anh chỉ bảo cho em cách dùng nhiều hơn 1 chân analog như ở bài trc em đã hỏi.
han_nang_008 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
dspic30f adc, dspic30f pwm


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 92 19-02-2017 11:15 PM
dsPIC Tutorial 2-Các kỹ thuật cơ bản namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 33 17-10-2013 11:09 PM
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 16 22-08-2012 12:35 AM
dsPIC Tutorial 4-Module UART và I2C namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 76 09-05-2012 10:55 AM
RF module khanh_pic Tìm mua sản phẩm 22 20-08-2007 11:25 AM


Múi giờ GMT. Hiện tại là 03:56 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