ADMUX=(1<<REFS1)|(1<<REFS0)|(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3); // внутренний источник опорного напряжения, вход PC0
while (1==1) {
ADCSRA |= (1 << ADSC);
while ((ADCSRA&(1 << ADIF))== 0);
u = (ADCL|ADCH << 8);
if (u>230) { //0.625V
PORTD = (1 << PD0);
}
else {
PORTD = (0<<PD0);
}
if (u >300) { //1.25V
PORTD |=(1 << PD1);
}
else {
PORTD |= (0<<PD1);
}
if (u > 380){ //1.875V
PORTD |=(1 << PD2);
}
else {
PORTD |= (0<<PD2);
}
if (u > 510) { //2.5V
PORTD |=(1 << PD3);
}
else {
PORTD |= (0<<PD3);
}
if (u > 640){ //3.125V
PORTD |=(1 << PD4);
}
else {
PORTD |= (0<<PD4);
}
if (u > 770) { //3.75V
PORTD |=(1 << PD5);
}
else {
PORTD |= (0<<PD5);
}
if (u > 880) { //4.375V
PORTD |=(1 << PD6);
}
else {
PORTD |= (0<<PD6);
}
if (u > 950) { //5V
PORTD|=(1 << PD7);
}
else {
PORTD |= (0<<PD7);
}
}
}
вобщем крутим переменный резистор, загораются светодиоды, чем больше напряжение тем больше загорается светодиодов, такая шкала получается, хотел бы я сделать так, чтобы при изменении напряжения огонёк бы бегал, а не все загорались.
Я что-то никак не могу двойное условие сделать что вроде:
200<u<220
Помогите пожалуйста
Predator
Отправлено: 01 Апреля, 2013 - 10:02:48
Супермодератор
Сообщений всего: 1307
Дата рег-ции: Июль 2012
CODE:
((u>200)&&(u<220))
как-то так....
Artem
Отправлено: 01 Апреля, 2013 - 13:30:59
Главнокомандующий
Сообщений всего: 347
Дата рег-ции: Май 2012
А, вот так, я пробовал что-то вроде этого, только с одним "И", сейчас попробуем с двумя. Спасибо.
Predator
Отправлено: 01 Апреля, 2013 - 13:47:37
Супермодератор
Сообщений всего: 1307
Дата рег-ции: Июль 2012
с одним & - побитовая операция, с 2-мя - логическая операция.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.