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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 16-11-2009, 06:07 PM   #1
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
ADCON3 = 0x0103; được tính như thế nào? help?

Em nghiên cứu mãi mà ko bit ADCON3 = 0x0103; nó được tính như thế nào? sao phải là /Dung 1 TAD cho lay mau 250ns. KHi em thay bằng kiểu các khác giá trị ADC là cái khác? Em thấy thay đổi cái này nó có ảnh hưởng đến giá trị ADC? Em ko bít tính nó nhưthees nào trong còn DSpic4011? Mong các pác giúp?
Khi cho tần số thực thi lệnh tăng lên thì có liên quan gì đến cái này ko?
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-11-2009, 10:29 PM   #2
tkpro
Đệ tử 4 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 61
:
Trích:
Nguyên văn bởi hang1988 View Post
Em nghiên cứu mãi mà ko bit ADCON3 = 0x0103; nó được tính như thế nào? sao phải là /Dung 1 TAD cho lay mau 250ns. KHi em thay bằng kiểu các khác giá trị ADC là cái khác? Em thấy thay đổi cái này nó có ảnh hưởng đến giá trị ADC? Em ko bít tính nó nhưthees nào trong còn DSpic4011? Mong các pác giúp?
Khi cho tần số thực thi lệnh tăng lên thì có liên quan gì đến cái này ko?
bạn thử cho tần số nhỏ hơn xem sao?
tkpro vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2009, 05:28 AM   #3
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
cũng thư rồi pác à! Nhưng tôi muốn hỏi là giá trị đó đựoc tính như thế nào? đối với ADC 10 bit sao tốc độ phải là 250ns. ứng với ADCON3=0x0103 hay nó có cách tính như thến ào?
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2009, 08:05 AM   #4
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 hang1988 View Post
cũng thư rồi pác à! Nhưng tôi muốn hỏi là giá trị đó đựoc tính như thế nào? đối với ADC 10 bit sao tốc độ phải là 250ns. ứng với ADCON3=0x0103 hay nó có cách tính như thến ào?
Ý nghĩa của các trường trong thanh ghi ADCON3 được mô tả trong tài liệu sau:
http://ww1.microchip.com/downloads/e...Doc/70064E.pdf

Bạn đọc thử xem, có chỗ nào không hiểu thì đặt câu hỏi.

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 17-11-2009, 03:35 PM   #5
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
Em còn gặp 1 trường hợp như thế này. Em có chương trình như thế này :
#include <p30f4011.h>
#include "ADC.h"
#include "LCD.h"
#include <math.h>
unsigned int ADCValue,t,t1;
void Init_ADC10(void)

{
TRISB=0x0001;
ADPCFG = 0xFFFE; //Cac chan khac la digital, chan AN0/RB0 la analog

ADCON1 = 0x00E0; // Cham dut lay mau ADC
//viec chuyen doi A/D
ADCON2 = 0; // Lua chon kenh 0 cho tin hieu dau vao
ADCHS = 0x0000 ; //Kenh 0 doc tin hieu giua AN0 va AVss
ADCSSL =0x0000; //Khong quet cac ngo vao
ADCON3 = 0x0103; //Dung 1 TAD cho lay mau, dung clock he thong, Tad = 2 x Tcy = 250ns

_ADIF = 0; //Xoa co ngat ADC
_ADIE = 1; //Cho phep ngat ADC
_ADON = 1; //Bat module ADC
_ASAM = 1; //Khoi dong che do tu dong lay mau
} //Khoi dong che do tu dong lay mau

void _ISR _ADCInterrupt(void)
{
ADCValue = ADCBUF0;// Get gia tri ADC

_ADIF = 0;



}
void calc_temperature()
{
t1 = ADCValue-559; // Tinh luon gia tri ADC
t=t1*4.9;

LCD_Position(1,1);
LCD_WriteString("Temp:");
Delay_ms(1);
LCD_Position(1,6);
LCD_WriteNumber(t/10);
Delay_ms(1);
LCD_Position(1,9);
LCD_WriteNumber(t%10);
Delay_ms(1);
LCD_Position(1,10);
LCD_WriteString("C");
Delay_ms(1);
LCD_Position(1,8);
LCD_WriteString(".");
Delay_ms(1);
LCD_Position(2,1);
LCD_WriteNumber(ADCValue);
Delay_ms(1);
LCD_Position(2,5);
LCD_WriteNumber(263);
}



Khi em để tần số thực thi lệnh là 8MPis thì kết quả tính ra giá trị t phù hợp với giá trị ADC đo được. Khi em chuyển sang tân số thực thi lệnh là 16MPis thì kết quả ADC vẫn như vậy nhưng giá trị t của mình lại ko đúng theo công thức.(GIá trị t bị sai so với công thức trong chương trình)
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2009, 03:59 PM   #6
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
em ko hiểu cái ADCON3<5:0> nghĩa là sao ? con <5:0> nghĩa là thế nào?
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2009, 10:46 PM   #7
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 hang1988 View Post
em ko hiểu cái ADCON3<5:0> nghĩa là sao ? con <5:0> nghĩa là thế nào?
ADCON3<5:0> là các bit 5 đến 0 của thanh ghi ADCON3 (tổng cộng là 6 bit).

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 18-11-2009, 10:15 AM   #8
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
Cho em hỏi thì nó được tính như thế nào khi tổng cộng gồm 6 bit?
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-11-2009, 09:18 PM   #9
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
thì 6 bít thì giá trị từ 0 đến 2^6-1 (=63 hoặc 0x3F)
tahi 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à 01:44 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