реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> пару вопросиков по Тини44
ltDrakon
сообщение Mar 17 2017, 18:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 17-03-17
Пользователь №: 95 867



возникла странная ситуация ...

на тини44 - работает ШИМ и АЦП, хочется синхронизировать , для сего считывается счетчик таймера и при прохождении нуля запускает АЦП - и все бы хорошо, но стоит запретить прерывания ( I=0), все зависает на глухо ... ( почему, не пойму )

( ШИМ работает сам по себе, АЦП прерывание тоже не использует .. в програме прерывание использует сейчас только сторожевой таймер )

а второе, еще более странное ... данные на этом АЦП чуть плавуют ( ну что мог сделал), но и да фиг бы с ним, я готов отказаться от нижнего бита, но! - даже если сдвигаю, делю, принудительно ставлю нижний бит ( даже не один) в 1 или 0 .. все равно получаю плавание +/- 1 ...

может в чем то туплю, но уловлю в чем ..
Go to the top of the page
 
+Quote Post
aiwa
сообщение Mar 17 2017, 22:25
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(ltDrakon @ Mar 17 2017, 20:27) *
а второе, еще более странное ... данные на этом АЦП чуть плавуют ( ну что мог сделал), но и да фиг бы с ним, я готов отказаться от нижнего бита, но! - даже если сдвигаю, делю, принудительно ставлю нижний бит ( даже не один) в 1 или 0 .. все равно получаю плавание +/- 1 ...


По документации 2 нижних значащих бита на самом деле ничего не значащие. Можете их совершенно легально обнулить.
Go to the top of the page
 
+Quote Post
ltDrakon
сообщение Mar 18 2017, 09:30
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 17-03-17
Пользователь №: 95 867



ну вопервых это в корне не верно ...

более того можно выжимать из того то АЦП даже больше чем 10 бит ....

а тут вопрос в другой - я даже 4 бита обнуляю, а один фиг получаю плавание в единицу ...
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 18 2017, 11:09
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 727
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(ltDrakon @ Mar 18 2017, 19:30) *
а тут вопрос в другой - я даже 4 бита обнуляю, а один фиг получаю плавание в единицу ...

Странный вопрос. Может, вы не так его задаете?
Правильно ли я понял, что биты показания АЦП обнуляете, а они не обнуляются? Или что-то другое плавает?
Go to the top of the page
 
+Quote Post
ltDrakon
сообщение Mar 18 2017, 11:18
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 17-03-17
Пользователь №: 95 867



ну как обьяснить - фактически они и могут плавать ( ну не идеальная тама развязка, да и на тини нет возможности развязать цифровую и аналоговую часть ), но я готов смириться с потерей одного бита ...

и потому после 16 интераций АЦП я принудительно ставлю младший бит результата или 0 или 1 ... после идет HEXtoDEC и вывод на LCD ( все класически ) ...

и вот на экране вижу результат .. и сколько бы бит я не ставил принудительно, все равно плавает .. т.е. было 200, плавало 200/201 .. срезал например биты, стало 20 .. а все равно плавает 20/21 ..

тоже с утановкой битов, было 200/201 ... ставлю младший в 1, плавает 201/203 ... и т.д.

ПС: преобразование и вывод на экран врядли виноваты - выводятся и другие значение ( не с АЦП ) и ничего не плавает и все как надо ...
Go to the top of the page
 
+Quote Post
aiwa
сообщение Mar 18 2017, 13:18
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(ltDrakon @ Mar 18 2017, 13:18) *
т.е. было 200, плавало 200/201 .. срезал например биты, стало 20 .. а все равно плавает 20/21 ..
тоже с утановкой битов, было 200/201 ... ставлю младший в 1, плавает 201/203 ... и т.д.


Уточните, что Вы имеете ввиду под понятиями "срезал и установил", а то создается впечатление, что Вы используете ">>=" для срезания
и пару "<<=" + "|=0x01" для установки.
Go to the top of the page
 
+Quote Post
ltDrakon
сообщение Mar 18 2017, 13:34
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 17-03-17
Пользователь №: 95 867



да все , надо было передохнуть, отвлечься и поспать ...

в итоге - с таймером запарка в том, что затупил и забыл что он работает на частоте ядра! а любое сравнение будет явно больше одного такта ( ну может и плюнуть на это )

а с АЦП ( уже на тестовом коде стало ясно ) - виноват оффсет дифф усилителя - это он гуляет и дает в итоге +/- 1, какое бы значение не было ...

и как с этим быть, надо подумать ... или ковырять почему оффсет гуляет, или как то компенсировать это ( хотелось бы попроще )
Go to the top of the page
 
+Quote Post
Ga_ry
сообщение Mar 18 2017, 21:27
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 393
Регистрация: 23-06-09
Из: Полтава, UA
Пользователь №: 50 579



Выкиньте диффусилитель - это косяк в данном камне.
Он спокойно себе гуляет до +/-10 странно что у Вас меньше.
Go to the top of the page
 
+Quote Post
ltDrakon
сообщение Mar 19 2017, 11:20
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 17-03-17
Пользователь №: 95 867



да я тоже склоняюсь к тому, что в тиньках дифф лучше нафиг! проще и лучше сделать внешнее ( а то даже питание нельзя развязать )...

меньше стало после запитки реф-напряжения от ТЛ431 ... ну и еще ковыряний с питанием

но с другой стороны - порой натыкаешься на пример неплохих реализаций, то и стимулирует поковыряться ....


но и может мой любимый максимализм, в данном случае может это вообще не важно - ибо это будет зарядка/разрядка аккумов - и в системе стабилизации тока заряда - эту гуляния то и не важны ( как уже заметил, тама на самом аккуме больше плавает, изза внутренних процессов )
Go to the top of the page
 
+Quote Post
Alex11
сообщение Mar 20 2017, 11:50
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 008
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Вы можете обрезать хоть 4 разряда, но в каких-то точках по входному напряжению Вы все равно будете получать болтанку +-1. Чтобы этого не было, нужно усреднение, и потом округление правильное десятичное в требуемом разряде. Тогда будете получать стабильное значение.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2017 - 20:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.0653 секунд с 7
ELECTRONIX ©2004-2016