AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
04.02.2015, 14:29
|
|
Временная регистрация
Регистрация: 12.04.2008
Сообщений: 91
Сказал спасибо: 11
Сказали Спасибо 23 раз(а) в 23 сообщении(ях)
|
Не слушается АЦП
Недавно начал изучать CV AVR. Написал програмку для простенького зарядника литиевых акумов. Запустил в протеусе... не работает.
Причина АЦП. По какой-то непонятной причине из регистров ADCH и ADCL данные никак не хотят переписываться в другие переменные.
Уж как ни извращался, но понял, что моих знаний очень мало. Потому и прошу помощи. Проблемные места выделил красным. Почему не происходит копирование, хотя протеус показывает, что в ADCL число. К примеру изначально выходит 0хс8.
Код:
|
#define ADC_VREF_TYPE ((1‹‹REFS1) | (1‹‹REFS0) | (0‹‹ADLAR) | (0‹‹MUX3) | (1‹‹MUX2) | (0‹‹MUX1) | (1‹‹MUX0))
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
// Place your code here
rb=ADMUX;
rb&=0x0f;
switch (rb) {
case 0x07:
{mot=ADCW;
ADMUX=0xc5;
goto M1;}
case 0x04:
{res=ADCW-bat;
ADMUX=0xc7;
goto M1;}
case 0x05:
{bat=ADCW;
ADMUX=0xc4;} //Start ADC
M1: }; |
__________________
|
|
|
Сказали "Спасибо" PIRAT7777
|
|
|
04.02.2015, 14:52
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: Не слушается АЦП
Сообщение от PIRAT7777
|
Недавно начал изучать CV AVR.
...
|
Раз так, то Визард генерит функцию int read_adc(num_ch).
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо akegor за это сообщение:
|
|
|
04.02.2015, 15:20
|
|
Временная регистрация
Регистрация: 12.04.2008
Сообщений: 91
Сказал спасибо: 11
Сказали Спасибо 23 раз(а) в 23 сообщении(ях)
|
Re: Не слушается АЦП
хм... интересно. не знал.
Покапавшись попробовал её применить.
Ну например:
Дык он пишет: undefined symbol 'read_adc'
посмотрел примеры в инете, у людей все так... В чем загвоздка?
__________________
|
|
|
Сказали "Спасибо" PIRAT7777
|
|
|
04.02.2015, 15:48
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: Не слушается АЦП
Визард используете для генерации "рыбы"?
Пример выкладывал ВиндоЗавру. В Визарде нужно "включить" АЦП. Появится эта функция.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
04.02.2015, 16:49
|
|
Временная регистрация
Регистрация: 12.04.2008
Сообщений: 91
Сказал спасибо: 11
Сказали Спасибо 23 раз(а) в 23 сообщении(ях)
|
Re: Не слушается АЦП
Решил уже показать Вам скрины, ибо и по-вашему не работает(((
![](http://s7.hostingkartinok.com/uploads/thumbs/2015/02/32df645ee8812600a7ae2479f6580154.png)
на первом скрине закончило работать АЦП, ну вы сами знаете. На втором результат 0. Почему так...
фак май брэйн, неужели руки из того самого, или моск не тот?
__________________
Последний раз редактировалось PIRAT7777; 04.02.2015 в 16:51.
|
|
|
Сказали "Спасибо" PIRAT7777
|
|
|
04.02.2015, 20:37
|
|
Прописка
Регистрация: 18.03.2010
Адрес: Украина, Тернополь
Сообщений: 225
Сказал спасибо: 14
Сказали Спасибо 44 раз(а) в 34 сообщении(ях)
|
Re: Не слушается АЦП
Выложи весь проект архивом
|
|
|
Сказали "Спасибо" sergx1300
|
|
|
04.02.2015, 22:02
|
|
Временная регистрация
Регистрация: 12.04.2008
Сообщений: 91
Сказал спасибо: 11
Сказали Спасибо 23 раз(а) в 23 сообщении(ях)
|
Re: Не слушается АЦП
Новая папка.rar
Воть. начинаю думать что протеус глючит, ибо какие то рандомные скачки в программе.
__________________
|
|
|
Сказали "Спасибо" PIRAT7777
|
|
|
04.02.2015, 22:16
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: Не слушается АЦП
Сообщение от PIRAT7777
|
начинаю думать что протеус глючит
|
Нет. Что и как делает этот кусочек?
PHP код:
|
bat=read_adc(5);
if (pw›0x44)
switch (bat) {
case 0x0320: //батарея 100%
PORTD|=0x41;
PORTB|=0xe0;
case 0x02f8: //батарея 80%
PORTD|=0x41;
PORTB|=0xc0;
case 0x02bc: //батарея 60%
PORTD|=0x41;
PORTB|=0x40;
case 0x0280: //батарея 40%
PORTD|=0x41;
case 0x0230: //батарея 20%
PORTD|=0x10;
break;
};
|
Если прочитанное значение из АЦП не соответствует проверяемым значениям и не ничего не предлагается по дефолту - ничего и не должно делаться.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
04.02.2015, 22:22
|
|
Временная регистрация
Регистрация: 12.04.2008
Сообщений: 91
Сказал спасибо: 11
Сказали Спасибо 23 раз(а) в 23 сообщении(ях)
|
Re: Не слушается АЦП
Этот кусочек просто выводит на светодиоды уровень заряда акума.
проблема в том, что в bat значение не возвращается вообще!
Никакое. Как-будто и нет этой переменной. Вся загвоздка в этом.
Тьфу, да нифига он выводить не будет. Переделаю. Не суть.
В bat ничего не попадает.
__________________
|
|
|
Сказали "Спасибо" PIRAT7777
|
|
|
04.02.2015, 22:31
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: Не слушается АЦП
Сообщение от PIRAT7777
|
В bat ничего не попадает.
|
Откуда это известно?
Да, по Протезу ничего не подскажу - не пользуюсь. Виртуальности предпочитаю реальность.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:35.
|
|