Раз уж тема про код создана то я ещё спрошу:
вот значит теперь задача с АЦП всё работает:
CODE:
#define F_CPU 1000000UL // указываем частоту в герцах
#include <avr/io.h> // подключаем библиотеку АВР
#include <util/delay.h> // подключаем библиотеку задержек
int main (void) {
unsigned int u=0;
DDRD = 0xFF;
DDRB = 0xFF;
ADCSRA=(1<<ADEN)|(1<<ADPS1)|(1<<ADPS0); // разрешаем АЦП, предделитель 8
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);
}
}
}
#include <avr/io.h> // подключаем библиотеку АВР
#include <util/delay.h> // подключаем библиотеку задержек
int main (void) {
unsigned int u=0;
DDRD = 0xFF;
DDRB = 0xFF;
ADCSRA=(1<<ADEN)|(1<<ADPS1)|(1<<ADPS0); // разрешаем АЦП, предделитель 8
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
Помогите пожалуйста