roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 июн 2025, 13:47

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: помогите с АЦП :(
СообщениеДобавлено: 21 сен 2005, 16:57 
Не в сети
Аватара пользователя

Зарегистрирован: 19 авг 2005, 16:58
Сообщения: 54
Откуда: г. Москва
ФИО: Константин Павлихин
привет всем!
пытаюсь настроить АЦП на меге16-ничего не выходит :( мне это нужно для снятия показаний с переменного резистора-для пропорционального управления. короче я все делаю по даташиту, а результат преобразования вывожу на 8 светодиодов-короче у меня независимо от каких либо факторов они мигают но на ивенение входного напряжения не реагируют :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 сен 2005, 17:11 
Не в сети
Аватара пользователя

Зарегистрирован: 19 авг 2005, 16:58
Сообщения: 54
Откуда: г. Москва
ФИО: Константин Павлихин
вот это глюк так глюк-если оцифровывать сигнал на ноге, к которой подведен подтягивающий  резистор и переменным резистором сводить напряжение на землю, то все работает :( а по правильному-один НЕРЕАЛЬНЕЙШИЙ шум, хотя кое какая стабилизация питания имеется. я так понял такая проблема не только с АЦП, но и с любым портом ввода


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 сен 2005, 18:00 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Ну, тогда давай рассказывай:
1) В чем пишешь?
2) Как включено питание? На все ли ноги? Есть там такое AVCC и AREF...
3) Какой кварц?
4) Кусок кода в студию!

А глюков быть не должно, у меня на M8535 все четко работало...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 сен 2005, 23:45 
Не в сети
Аватара пользователя

Зарегистрирован: 19 авг 2005, 16:58
Сообщения: 54
Откуда: г. Москва
ФИО: Константин Павлихин
AVR GCC компилер
шью понипрогом

питание на VCC и AVCC. AREF висит в воздухе (не подключен никуда)

юзаю встроенный тактовый генератор на 1МГц

//--------------------------------------------------------------------------------
// programmed by me :)
//--------------------------------------------------------------------------------

#include <avr/io.h>

// bit operations

#define SET(x) |=(1<<x)
#define CLR(x) &=~(1<<x)
#define INV(x) ^=(1<<x)

//--------------------------------------------------------------------------------
// timer delays (non interrupt-friendly!)
//--------------------------------------------------------------------------------

void d1ms()
{
for(char w=0;w<4;w++)
{
if(w==4) TCNT0=0x80;

while(bit_is_clear(TIFR,0));

TIFR SET(0);
}
}

void d1s()
{
for(int q=0;q<1000;q++) d1ms();
}

int main()
{
DDRC=0xff;
DDRD=0xff;
DDRB=0xff;

DDRA=0x00;
PORTA SET(0);

TCCR0 SET(0); // timer-prescaler

ADCSRA SET(7); // ADC ON
ADCSRA SET(5); // forever
ADCSRA SET(6); // RUN
ADMUX=0x00;
ADMUX CLR(7);
ADMUX SET(6);
ADMUX SET(5);

while(1)
{
PORTB=ADCH;
}

return 0;
}

//--------------------------------------------------------------------------------
// end
//--------------------------------------------------------------------------------


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 сен 2005, 00:51 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Ну так в AVCC и AREF все и дело! Один из них - опорное напряжение АЦП, а второй не помню что, но тоже для АЦП, так что цепляй их на Vcc и не будет никаких шумов!  :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 сен 2005, 03:36 
Не в сети

Зарегистрирован: 18 дек 2004, 03:14
Сообщения: 155
Откуда: Москва
А AREF -- это базовое напряжение для сравнения. Например, если на ноге ADCn будет напряжение >= AREF, то в регистре будет 0x3FF; если ADCn == AREF/2, то в регистре -- 0x1FF и т.д.
Его, вроде, можно программно отключить и сделать базовым Vcc или 2.56 В от внутреннего источника.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 сен 2005, 04:24 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Но проще подключить к Vcc. Или к опорному фильтру. MAXIM какие-то суперточные фильтры делает специально для этого. Если интересно - могу поискать, у меня про это было что-то...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 сен 2005, 13:38 
Не в сети
Аватара пользователя

Зарегистрирован: 19 авг 2005, 16:58
Сообщения: 54
Откуда: г. Москва
ФИО: Константин Павлихин
Спасибо, попробую AREF подцепить
хотя я вроде программно опорным сделал AVCC


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2005, 06:35 
Не в сети
Аватара пользователя

Зарегистрирован: 01 мар 2005, 14:54
Сообщения: 70
Откуда: г. Томск
A нога AVCC это питание порта А в целом. Этот порт запитывается отдельно от остальной части микроконтроллера. Вот такая вот хитрость!  :D

_________________
В электронике чудес не бывает! Бывают плохие контакты!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO