central30 пишет:Все правильно
Программа
char t3, t2, t1, t;
char termometer( void )
{
return 0;
}
int main( void )
{
DDRD |= ((1<<7)|(1<<6)|(1<<5));
PORTD &= ~((1<<7)|(1<<6)|(1<<5));
t3 = 50;
t2 = t3 - 4;
t1 = t2 - 3;
t = 0;
for(;;)
{
t = termometer();
if ( t < t1 )
{
PORTD |= ((1<<7)|(1<<6)|(1<<5)); // 1 on, 2 on, 3 on
}
if ( t == t1 )
{
PORTD &= ~(1<<7); // 1 off
PORTD |= ((1<<6)|(1<<5)); // 2 on, 3 on
}
if ( t == t2 )
{
PORTD &= ~((1<<7)|(1<<6)); // 1 off, 2 off
PORTD |= (1<<5); // 3 on
}
if ( t >= t3 )
{
PORTD &= ~((1<<7)|(1<<6)|(1<<5)); // 1 off, 2 off, 3 off
}
// delay(1000);
}
return 0;
}
Первый ТЭН управляется PD7. Второй ТЭН управляется PD6. Третий ТЭН управляется PD5.
Функция termometer() возвращает измеренную температуру. В примере она всегда возвращает 0. Функция delay(1000) обеспечивает задержку в 1 секунду. Она необязательна. Поэтому я ее закомментировал.(Отредактировано автором: 29 Ноября, 2013 - 22:58:10) |