Например TDA7294

Форум РадиоКот • Просмотр темы - atmega8 гонит ADC или я косячу?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср фев 18, 2026 05:44:20

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 27 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Ср мар 28, 2012 11:23:07 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 623
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Сообщений: 8007
Откуда: Лукалэнд
Рейтинг сообщения: 0
Да вот у меня получился бесполезный nop, например :)) Только я не понял, почему компилятор должен выкинуть написанные тобой nop'ы (значит нужные) без volatile? Не выкидывает ведь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Ср мар 28, 2012 13:06:50 
Встал на лапы

Зарегистрирован: Пт ноя 02, 2007 18:18:26
Сообщений: 87
Рейтинг сообщения: 0
hybroid писал(а):
Код:
int n = 0;
int n1 = 0;
   n = ADCH;
        n1 = ADCL;

Нафига?
[/quote]
это отладочный костыль - не мог понять по чему не работает и думал что может я не тот байт читаю или еще чего...
У меня вообще код ужасный - не программист я...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Ср мар 28, 2012 13:25:18 
Поставщик валерьянки для Кота

Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Ср май 11, 2011 21:37:45
Сообщений: 1995
Откуда: Цветочный город
Рейтинг сообщения: 0
hybroid писал(а):
Да вот у меня получился бесполезный nop, например :)) Только я не понял, почему компилятор должен выкинуть написанные тобой nop'ы (значит нужные) без volatile? Не выкидывает ведь.
а почему компилятор может выкинуть переменные, которые в прерывании обрабатываются, если они не volatile? их ведь программист написал, значит нужные? ;) да потому, что компилятор имеет полное право исключать при оптимизации коды, НЕ ИЗМЕНЯЮЩИЕ СОСТОЯНИЕ "ВИРТУАЛЬНОЙ" ИСПОЛНЯЮЩЕЙ МАШИНЫ сиречь ПРОГРАММЫ. если нет обращений к переменной - она лишняя. если NOP не длает ничего, что меняет содержимое других переменных и т.п. - он лишний. вот и может удалить. МОЖЕТ - не факт, что удалит, но МОЖЕТ. и надеяться на его доброту - это опасно. скольконовичков попали на пустых циклах, из которых они надеялись получить программные задержки? вот и объяснение.

_________________
битва с дураками проиграна, победители торжествуют. слава победителям!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Ср мар 28, 2012 13:26:36 
Поставщик валерьянки для Кота

Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Ср май 11, 2011 21:37:45
Сообщений: 1995
Откуда: Цветочный город
Рейтинг сообщения: 0
Qwq писал(а):
У меня вообще код ужасный - не программист я...

да и не ломайте голову, почему не работает не совсем корректный код, просто напишите корректный, однозначно работающий:
Код:
int adc_result;
adc_result = ADC;

_________________
битва с дураками проиграна, победители торжествуют. слава победителям!


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Ср мар 28, 2012 13:38:41 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 623
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Сообщений: 8007
Откуда: Лукалэнд
Рейтинг сообщения: 0
Не нужны ему последние два бита. Ему нужно ADLAR в 1 и вот это:
Код:
uint8_t adc; // unsigned char, если не нравится это
adc = ADCH;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Ср мар 28, 2012 14:07:40 
Встал на лапы

Зарегистрирован: Пт ноя 02, 2007 18:18:26
Сообщений: 87
Рейтинг сообщения: 0
так уже все 100 лет работает... собственно с тех пор как pyzhman подсказал про то что оба байта читать надо... я уже почти все дописал, мелочевка осталась...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: atmega8 гонит ADC или я косячу?
СообщениеДобавлено: Вт авг 14, 2012 22:48:42 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Ср май 02, 2007 14:36:29
Сообщений: 833
Откуда: Плюк
Рейтинг сообщения: 0
Аналогично " Result is not written to the ADC register because it has been locked""" :(
ADCSRA = ADCSRA | _BV(ADSC);
while((ADCSRA & _BV(ADIF)) == 0)
values[current] = ADC;


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 27 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 56


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y