Свежие обсуждения
Микроконтроллеры

Си для микроконтроллеров PIC 8051 AVR и других - вопросы и ответы.

1 2 4

slava2005: Ну дык Вы и представьте. Неужто визард запустить не можете ?
в тотм то и дело что визард не помогает

 

MiHoY: в тотм то и дело что визард не помогает

Хех. А в чём это выражается? Он не генерит код? Или полученный код не работает? Приведите кусок кода.
Хотя все эти мастера - это костыли. Отбери их у привыкшего человека - он не сможет ходить...

Ладно.

Инициализация АЦП:


void adc_init(void)
{
ADCSRA = _BV(ADEN) | _BV(ADPS0) | _BV(ADPS1) | _BV(ADPS2); // prescaler = 128
}

Чтение канала АЦП:


WORD adc_read(BYTE ch)
{
ADMUX = _BV(REFS0) | (ch & 0x1F); // set channel (VREF = VCC)
ADCSRA &= ~_BV(ADIF); // clear hardware "conversion complete" flag
ADCSRA |= _BV(ADSC); // start conversion
while(ADCSRA & _BV(ADSC)); // wait until conversion complete
return ADC; // read ADC (full 10 bits);
}

Если нужны милливольты:


WORD adc_mv(BYTE ch)
{
unsigned long tmp = 5000; // VREF = 5в, или 5000мв
tmp *= adc_read(ch);
tmp /= 0x3FF;
return tmp;
}

Или вольты:


double adc_v(BYTE ch)
{
double f = adc_read(ch);
f *= 5.0/(double)0x3FF;
return f;
}

Это для avr-gcc, операции с битами вероятно отличаются. Но идея должна быть понятна.

 

операция _BV что выполняет?

 

Max_Pinchuk знаете что бывает, когда плюёшься против ветра? Ну что же Вы за человек?
picmaniaca в модераторы раздела!

 

MiHoY: операция _BV что выполняет?

Возвращает единичку в нужном разряде. _BV(0) = 1, _BV(1) = 2, _BV(2) = 4, _BV(3) = 8...

 

AHTOXA: tmp *= adc_read(ch);
Здесь был вопрос, но я уже сам разобрался. Вопрос снят.

Скрывающийся под ником Max_Pinchuk чел в жизни давно уже был бы побит за такое неуважение к людям, причём скорее всего сильно и неоднократно.

 

picmaniac: причём скорее всего сильно и неоднократно.

Лично я уже забил. Даже отвечать после него. Надо чистить.

Вот хочется, что-бы MiHoY разместил код, который не работает, но чувствуя заааапах гнили - уже ничего не хочется.

 

slava2005: Лично я уже забил. Даже отвечать после него. Надо чистить

+1. ИМХО, когда он не упоминает свой "мегапортал", он просто "разбавляет" свои сообщения как-бы сообщениями по теме.

slava2005: Вот хочется, что-бы MiHoY разместил код, который не работает

Вряд ли он существует

 

xaM_Pinsuck, это издевательство!!!! Унижение!!!! Этот человек ХОТЬ что то для "ЧАЙНИКОВ" сделал и вообще для другого человека. А ВЫ????? Пусть он даёт ссылки через каждые строчки, вам чё лень внимания не обращать. Понимайте мои слова как хотите, ВЫ ПРОСТО ХАМ!!!! Да я понимаю надоел, но "унижать" это просто так низко пасть, прям ниже плинтуса!!!!!!!! Я не раз встречал грязь в его сторону, но это вообще придел! Я думаю кто это писал, примет это как не оскорбление, а просьбу не писать оскорбительных фраз в чей-то счёт!!!!!

 

Ну, конкурент... До тебя всё спокойно было! (с) Операция "Кооперация"