Отговори на тема  [ 10 мнения ] 
Проблем с АДЦ на PIC 16F877A 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Юни 17, 2006 11:16 am
Мнения: 4
Мнение Проблем с АДЦ на PIC 16F877A
Здравейте, от скоро се запалих да си направя миди контролер със PIC16F877A, използвах компилатор-а на CSS PicC и успях да го нпарвя само че имам проблем за който нямам никаква идея от къде може да идва, Най напред за момента тествам само с единия аналогов вход другите са на маса през резистори при ниски напрежения близки до нулата и при напрежение близки до 5 Волта стоиноста която прочитам от АДЦ-то се колебае с 1-2
(8- Bit Integer) работната честота на процесор-а ми е 4 MHz XT конфигурация на осцилатор-а, четенето от АДЦ-то го правя по този начин :
като за момента port = 0;


int1 updateAdcValue(int8 port)
{
int1 result = 0;
int8 value;

set_adc_channel(port);
delay_ms(10);
value = read_adc()>>1;
delay_ms(1);

if( value != adcPortValues[port] )
{
result = 1;
adcPortValues[port] = value;
}

return(result );
}

Чудя се дали ако намеря кварц на 20 Мегахерца и го пусна PIC-a на тази честота нещо ще се промени ?
Това са ми настройките сега на Pic-a :

#include <16F877A.h>
#define ADC=8
#use delay(clock=4000000)
#fuses XT,NOWDT

setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_DIV_8);
setup_spi(FALSE);
setup_psp(PSP_DISABLED);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);

Тъй като се занимавам съвсем от скоро и не съм наясно с доста неща може да съм объркал нещо.
Благодаря предварително !!


Съб Юни 17, 2006 11:30 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение Re: Проблем с АДЦ на PIC 16F877A
A трудно ти се разбира кое е проблема, но ако е това:
naskoialan написа:
при ниски напрежения близки до нулата и при напрежение близки до 5 Волта стоиноста която прочитам от АДЦ-то се колебае с 1-2

... считай го за съвсем нормално. Последния бит винаги си играе, ако искаш малко по-голяма точност, направи 10 измервания и усредни резултата (в случая ще е много по-удобно ако правиш 8 или 16, щото деленето на толкова е просто шифтване). Освен това тия 10ms delay са ненужно много за ADC-то (освен ако не си написал 10 за да си забавиш програмата умишлено) :)


Съб Юни 17, 2006 12:10 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Юни 17, 2006 11:16 am
Мнения: 4
Мнение Re: Проблем с АДЦ на PIC 16F877A
Predator_MF написа:
A трудно ти се разбира кое е проблема, но ако е това:
naskoialan написа:
при ниски напрежения близки до нулата и при напрежение близки до 5 Волта стоиноста която прочитам от АДЦ-то се колебае с 1-2

... считай го за съвсем нормално. Последния бит винаги си играе, ако искаш малко по-голяма точност, направи 10 измервания и усредни резултата (в случая ще е много по-удобно ако правиш 8 или 16, щото деленето на толкова е просто шифтване). Освен това тия 10ms delay са ненужно много за ADC-то (освен ако не си написал 10 за да си забавиш програмата умишлено) :)


Благодаря ти за отговора, за 10ms delay знам че са много просто исках да се убедя че дори при голямо изчакване пак го има това, ще използвам твоя метод :D .


Съб Юни 17, 2006 12:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение 
Цитат:
Последния бит винаги си играе, ако искаш малко по-голяма точност, направи 10 измервания и усредни резултата


Само едно допьлнение, че по този метод по-голяма точност няма да постигнеш. Точността на едно измерване не се влияе от броя на проведениете проби.
Образуването на средна стойност би ти погнало при определянето на стандартното отклонение, но не би подобрило точността, lsb си е lsb независимо колко дьлго мериш.
Няма да е лошо да хвьрлиш един поглед и в книгите по измервателна техника, разделите за статистика и стохастика, ако имаш желание да задьлбаваш по-сериозно.
А конкретно по проблема, какво имаш предвид с това
стоиността която прочитам от АДЦ-то се колебае с 1-2, какво 1-2 и колко точно около нулата?


Съб Юни 17, 2006 12:59 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
@HCL, прав си, няма да е по-голяма точност...по скоро ще имаш по-сигурен резултат (поне по-малко ще плува последния бит).

PS: Според мен има в предвид, че като подаде напрежение 0.3V (примерно) ще получава стойност между 15-16, при едното замерване ще е 15, при другото 16


Съб Юни 17, 2006 1:12 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Юни 17, 2006 11:16 am
Мнения: 4
Мнение 
Predator_MF написа:
@HCL, прав си, няма да е по-голяма точност...по скоро ще имаш по-сигурен резултат (поне по-малко ще плува последния бит).

PS: Според мен има в предвид, че като подаде напрежение 0.3V (примерно) ще получава стойност между 15-16, при едното замерване ще е 15, при другото 16


Точно това имам предвид, целта ми е да предавам миди съобщения само ако имам промяна на входа т.е на АДЦ, а в случая при оределено напрежение при две различни замервания стойноста е различна и мисля, че само последния бит ми играе не съм сигурен.


Съб Юни 17, 2006 1:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение 
Ако е последния бит не виждам кьде е проблема, освен ако си решил да "четеш" микроволтове. Какво пречи да си напаснеш долната и горната граници на стойностите, които получаваш.


Съб Юни 17, 2006 2:11 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Ами избери си някой от двата метода, тоя който аз ти споменах или тоя на HCL... можеш просто да шифтнеш резултата един път вдясно и имаш твърд резултат, последния бит няма да те бърка :)


Съб Юни 17, 2006 2:25 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Юни 17, 2006 11:16 am
Мнения: 4
Мнение 
Много благодаря за помоща направих го с игнориране на последния бит и е наред ве4е :D.


Съб Юни 17, 2006 2:38 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Фев 04, 2005 3:18 pm
Мнения: 309
Местоположение: Sofia
Мнение 
@naskoialan
Ако не е тайна какво точно ще правиш с мидито - барабани?
или нещо друго?
Случайно се занимавам с нещо подобно в момента


Съб Юни 17, 2006 8:29 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 10 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни