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 09-05-2008, 02:16 PM   #3
trieutuan_vnu
Đệ tử 1 túi
 
trieutuan_vnu's Avatar
 
Tham gia ngày: Sep 2006
Bài gửi: 14
:
Sory anh, em có gửi kem file 00_program.rar mà. Trong đó có hàm khởi tạo sóng sin reference, hàm sin này sử dụng 4 bít, nó điều khiển và cho ra sóng sin sau khi qua bộ biến đổi dac r-2r network. Vả sau đó là qua bộ lọc thông thấp để làm mịn tín hiệu(Đo ra miột tín hiệu rất đẹp_cái này đã làm được và em đã kiểm tra rồi ko sai gì cả)Tín hiệu này sau khi được hình thành sẽ cung cấp cho 1 sensor(cấu tạo theo kiểu cầu trở) tín hiệu từ senor ra sẽ có tần số đúng bằng tần số của tín hiệu reference tạo ra.
-Ở đây em chỉ muốn hỏi anh là để nhân tín hiệu sau khi biến đổi ADC với tín hiệu referen em tạo ra theo bảng thì nhân như thế nào.

///==============Hàm tạo tín hiệu reference==============
#include <p30f4011.h>
#include "common.h"
#include "dsp.h"
volatile unsigned char _sinTableIndex;
extern fractional* ref_input_s90;
extern fractional* ref_input;
static unsigned char sinTable[] = {5,6,7,8,9,9,10,10,10,10,10,9,9,8,7,6,5,4,3,2,1,1, 0,0,0,0,0,1,1,2,3,4};
static unsigned char sinTable_s90[] = {10,10,10,9,9,8,7,6,5,4,3,2,1,1,0,0,0,0,0,1,1,2,3, 4,5,6,7,8,9,9,10,10};
void __attribute__((__interrupt__,no_auto_psv)) _T2Interrupt( void )
{
_sinTableIndex++;
_sinTableIndex &= 0b00011111;

LATE = (sinTable[_sinTableIndex]);
*ref_input = (sinTable[_sinTableIndex]);
*ref_input_s90 = (sinTable_s90[_sinTableIndex]);
IFS0bits.T2IF = 0; // Xoa co ngat
}


#include "p30f4011.h"
#include "common.h"
#include "dsp.h"


//extern fractional input_I_signal[NUMSAMP];
//extern fractional input_Q_signal[NUMSAMP];
//extern fractional output_I_signal[NUMSAMP];
//extern fractional output_Q_signal[NUMSAMP];
extern unsigned int doFilterFlag;
// extern int sample;

extern fractional* i_Ptr;
//extern fractional* i1_Ptr;
//extern fractional* i2_Ptr;







void Init_ADC(void);


void __attribute__((__interrupt__)) _ADCInterrupt(void);
void Init_ADC(void)
{
/*
ADCON1bits.FORM = 3; // 1.15 fractional //number format. // signed fractional

ADCON1bits.SSRC = 2; // Timer 3 cham dut lay mau va kich hoat

ADCON1bits.ASAM = 1; // Khoi dong che do tu dong lay mau

ADCON2bits.SMPI = 0; // ngat sau moi mau thu duoc;


ADCON3bits.SAMC = 31;
ADCON3bits.ADCS = 63;



ADCHS = 0x0008; // Kenh 8 doc tin hieu giua AN8 va AVss
ADCSSL = 0x0000; // Khong quet cac ngo vao
ADPCFG = 0xFFFF;
ADPCFGbits.PCFG8 = 0;


IFS0bits.ADIF = 0; // xoa co ngat ADC
IEC0bits.ADIE = 1; // cho phep ngat ADC

ADCON1bits.ADON = 1; // bat ADC
T3CONbits.TON = 1; // bat timer 3


*/
ADCON1bits.FORM = 3; // 1.15 fractional
ADCON1bits.SSRC = 2; // Timer 3 cham dut lay mau va kich hoat
ADCON1bits.ASAM = 1; // Khoi dong che do tu dong lay mau
ADCON1bits.SIMSAM = 0; // Samples multiple channels individually in sequence


ADCON2bits.SMPI = 0; // ngat sau moi mau thu duoc;
ADCON2bits.CHPS = 0;

// ADCON2=0;

ADCON3bits.SAMC = 1; // dung 1TAD cho lay mau
ADCON3bits.ADCS = 3; // dung clock he thong,TAD = 2xTcy = 250 ns


ADCHS = 0x0008; //Kenh 0 doc tin hieu giua AN8 va AVss


ADCSSL = 0x0000; //Khong quet cac ngo vao


ADPCFG = 0xFFFF;
ADPCFGbits.PCFG8 = 0; // AN8 la ADC con lai la digital

IFS0bits.ADIF = 0; // xoa co ngat
IEC0bits.ADIE = 1; // cho phep ngat


ADCON1bits.ADON = 1; // bat modul ADC

}
void __attribute__((__interrupt__)) _ADCInterrupt(void)
{
//Clear the Timer3 Interrupt Flag
IFS0bits.T3IF = 0;

// sample = ADCBUF0; // int format
*i_Ptr = ADCBUF0;




doFilterFlag = 1;
IFS0bits.ADIF = 0;
}
trieutuan_vnu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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à 06:22 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