НЕ могу задать условие для установки и считывания разрядов

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Valer5
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт фев 21, 2013 20:31:33

НЕ могу задать условие для установки и считывания разрядов

Сообщение Valer5 »

При использовании аналогового компаратора в зависимости от соотношения на его входах напряжения изменяется состояние бита выхода ACO (Atmega8) с 0 на 1 и обратно. Для определения "1 " пишу в разделе while(1) следующие выражения

Код: Выделить всё

 if ((ACSR & (1<<5))   {k=1}
 if ((ACSR & (1<<5))==1)   {k=1}
 if (ACSR & (1<<5))             {k=1}
if (FCO)    {k=1}                  {k=1}
Ни один из вариантов не работают.
Объясните неграмотному, что я делаю не так? Пытаюсь писать программы на Си и моделирую в Протеусе..
Реклама
Аватара пользователя
N1X
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Чт май 03, 2012 17:03:35
Откуда: Гомель, Беларусь

Re: НЕ могу задать условие для установки и считывания разряд

Сообщение N1X »

Ну хорошо, при выполнении условия k станет равным 1. А кто его в ноль сбрасывает? Сам он этого не сделает. Нужно добавить тогда else k=0;
Ну либо как вариант k = (ASCR >> 5) & 1;
Реклама
Valer5
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт фев 21, 2013 20:31:33

Re: НЕ могу задать условие для установки и считывания разряд

Сообщение Valer5 »

Т.к. я уверен, что при напряжении на входе AIN0 больше,чем на AIN1, то мне надо убедиться, что работает первое условие. А оно не работает, т.к. при проверке в Протеус во всех этих условиях при FCO = 1 (видно в окне виндовс) к=0 (видно в значении переменных). к ввёл специально для проверки. А Ваш вариант указан среди проверяемых мной.
Valer5
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт фев 21, 2013 20:31:33

Re: НЕ могу задать условие для установки и считывания разряд

Сообщение Valer5 »

Заметил интересную фишку!
При варианте

Код: Выделить всё

 if (ACSR&1<<5)
    {PORTD|=1<<5; }
   else
   { PORTD&=0xDF; }
При изменении знака разности напряжений на входах компаратора значения регистра 5 порта D в окне Wath windov меняются, а на схеме и на виртуальном осциллографе протеуса остаются в нулевом значении.
чему верить?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16430
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: НЕ могу задать условие для установки и считывания разряд

Сообщение mickbell »

Только натуральному МК. Протезу верить не стоит.
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Реклама
Valer5
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт фев 21, 2013 20:31:33

Re: НЕ могу задать условие для установки и считывания разряд

Сообщение Valer5 »

mickbell писал
[uquote="mickbell",url="/forum/viewtopic.php?p=4163294#p4163294"]Только натуральному МК. Протезу верить не стоит.[/uquote]
Опять оказалось дело в моей невнимательности. Порт D был настроен весь на выход.
Всем спасибо. Тему можно закрыть.
Реклама
Ответить

Вернуться в «Теория»