Циклический таймер на ATtmega8A.
- Starichok51
- Модератор
- Сообщения: 19048
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Циклический таймер на ATtmega8A.
Alex_641, может тебе следует почитать школьный учебник АРИФМЕТИКИ про целочисленное деление?
а целочисленное деление в школе изучается еще до дробей, и тем более, до десятичных дробей.
а целочисленное деление в школе изучается еще до дробей, и тем более, до десятичных дробей.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Реклама
Re: Циклический таймер на ATtmega8A.
Остаток от деления ( по твоему канкулятору ) разелить на шта ?
Добавлено after 10 minutes 3 seconds:
Алгоритм по расчёту ёмкости , в моём исполнении за 0,1 секунду :
Есть стандартное зарядное устройство на 5 вольт. Подключено к потребителю не постоянного тока (мобильный телефон, любое то-что имеет свой конроллер заряда и изменяет ток в зависимости от полноты заряда).
Задача
считать ацп тока раз в 0,1 секунды, расчитать емкость набранную за это время.
Реализация без FLOAT ( расчёт ёмкости за 0,1 сек):
К примеру АЦП выдал ток I;
дельта С ( ёмкость за данный промежуток времени )=А*час=I*(1/36000)=I/36000 , но так как у нас не флоат, то микроконтроллер не может считать данные ниже единицы.
Потому умножаем числитель на 10 000 000 получаем I*10 000 000 /36000
сокращаем нули I*10 000/36=278 В итоге I*278
и теперь расчитываем ёмкость , набранную за 0,1 секунды
Показания тока с АЦП у меня в программе равны 1000=1 А !
То есть в формулу можем подставлять миллиамперы, предположим что ток 50 мА
Расчитываем всосанную ёмкость при токе 50 мА и времени 0,1 сек
50*278=13900 - это для микроконтроллера!
50*278/10 000 000 =0,00139 А*ч а это фактически !
Проверяем :
50 мА -ток заряда
0,00139 А*ч за 1/10 секунды
0,00139*36000=50,04 мА/ч .
Добавлено after 10 minutes 3 seconds:
Алгоритм по расчёту ёмкости , в моём исполнении за 0,1 секунду :
Есть стандартное зарядное устройство на 5 вольт. Подключено к потребителю не постоянного тока (мобильный телефон, любое то-что имеет свой конроллер заряда и изменяет ток в зависимости от полноты заряда).
Задача
считать ацп тока раз в 0,1 секунды, расчитать емкость набранную за это время.
Реализация без FLOAT ( расчёт ёмкости за 0,1 сек):
К примеру АЦП выдал ток I;
дельта С ( ёмкость за данный промежуток времени )=А*час=I*(1/36000)=I/36000 , но так как у нас не флоат, то микроконтроллер не может считать данные ниже единицы.
Потому умножаем числитель на 10 000 000 получаем I*10 000 000 /36000
сокращаем нули I*10 000/36=278 В итоге I*278
и теперь расчитываем ёмкость , набранную за 0,1 секунды
Показания тока с АЦП у меня в программе равны 1000=1 А !
То есть в формулу можем подставлять миллиамперы, предположим что ток 50 мА
Расчитываем всосанную ёмкость при токе 50 мА и времени 0,1 сек
50*278=13900 - это для микроконтроллера!
50*278/10 000 000 =0,00139 А*ч а это фактически !
Проверяем :
50 мА -ток заряда
0,00139 А*ч за 1/10 секунды
0,00139*36000=50,04 мА/ч .
Не спрашивай по ком звонит колокол, он звонит по тебе !
Re: Циклический таймер на ATtmega8A.
[uquote="Alex_641",url="/forum/viewtopic.php?p=4014581#p4014581"]Остаток от деления ( по твоему канкулятору ) разелить на шта ?[/uquote]
Зачем делить остаток на "шта"? Неужели школьная арифметика забылась?
Зачем делить остаток на "шта"? Неужели школьная арифметика забылась?
Re: Циклический таймер на ATtmega8A.
А что с алгритмом выше ? )))
Добавлено after 5 minutes:
При целочисленной арифметике результат деления одного целого числа на другое состоит из двух чисел — частного и остатка. Если остаток деления отбросить, получим результат, в абсолютной величине округленный до меньшего целого.
Добавлено after 5 minutes:
При целочисленной арифметике результат деления одного целого числа на другое состоит из двух чисел — частного и остатка. Если остаток деления отбросить, получим результат, в абсолютной величине округленный до меньшего целого.
Не спрашивай по ком звонит колокол, он звонит по тебе !
Re: Циклический таймер на ATtmega8A.
Это частный случай числа с фиксированной запятой, с основанием десятичным. В железе иногда преимущественно выбирать основание по степени двойки.А что с алгритмом выше ? )))
- Реклама
Re: Циклический таймер на ATtmega8A.
Хорошо ! Есть остаток , после деления ! Но до какой стпени , до каких запятых ? Тысячных, миллионных ? Гугольных ?
Добавлено after 4 minutes 9 seconds:
..у Нас есть переменная INT32 ! И фсё ! У нас нет 0,0014 и даже 0,99 !!! У нас есть 1 и 2 в степени 32 !
Добавлено after 4 minutes 9 seconds:
..у Нас есть переменная INT32 ! И фсё ! У нас нет 0,0014 и даже 0,99 !!! У нас есть 1 и 2 в степени 32 !
Не спрашивай по ком звонит колокол, он звонит по тебе !
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: Циклический таймер на ATtmega8A.
[uquote="Starichok51",url="/forum/viewtopic.php?p=4013782#p4013782"]для накопительного счетчика при очень маленькой прибавке сохраняется остаток от деления.
потом, при следующем делении, этот остаток сначала прибавляется, а уже потом делается деление и опять сохраняется новый остаток.[/uquote]
Оригинально! Возьму на заметку,спасибо!
потом, при следующем делении, этот остаток сначала прибавляется, а уже потом делается деление и опять сохраняется новый остаток.[/uquote]
Оригинально! Возьму на заметку,спасибо!
Re: Циклический таймер на ATtmega8A.
Alex_641, В смысле до какой? До основания. В данном случае основание было выбрано 3600, т.к. оно подходит для расчетов во времени в час (60 сек * 60 мин = 1 час). Соотв. минимальная единица отсчета 1/3600.
Последний раз редактировалось NStorm Пн апр 12, 2021 23:23:00, всего редактировалось 1 раз.
Re: Циклический таймер на ATtmega8A.
Нет 1/36000 - единица отсчёта 0,1 секунда !
Добавлено after 3 minutes 58 seconds:
Это потому , что зарядные устройства телефонов и других гатжетов , а точнее их контроллеры заряда - быстро меняют ток заряда , и могут менять токи несколько раз в секунду ! Это было замечено не раз !
Добавлено after 3 minutes 58 seconds:
Это потому , что зарядные устройства телефонов и других гатжетов , а точнее их контроллеры заряда - быстро меняют ток заряда , и могут менять токи несколько раз в секунду ! Это было замечено не раз !
Не спрашивай по ком звонит колокол, он звонит по тебе !
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: Циклический таймер на ATtmega8A.
А какой смысл измерять потребленную емкость при заряде телефона?
Re: Циклический таймер на ATtmega8A.
[uquote="Novice user",url="/forum/viewtopic.php?p=4014615#p4014615"]А какой смысл измерять потребленную емкость при заряде телефона?[/uquote]
Что бы замерить ёмкость АКб телефона !
Добавлено after 1 minute 53 seconds:
Вот купил ты телефон (планшет) , а в его характеристиках написано 5000 ма/ч ! А при зарядке оказалось 1900 (((
Что бы замерить ёмкость АКб телефона !
Добавлено after 1 minute 53 seconds:
Вот купил ты телефон (планшет) , а в его характеристиках написано 5000 ма/ч ! А при зарядке оказалось 1900 (((
Не спрашивай по ком звонит колокол, он звонит по тебе !
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: Циклический таймер на ATtmega8A.
Я буду измерять емкость аккумулятора при разряде до определенного напряжения,а не при заряде
В вашем случае я бы считал в мкА/ч,тогда формула будет
C=C+((I+Iост)/36)
Iост=I mod 36
где C-общая потребленная емкость
I-измеренный ток,то есть значение ацп,у вас 1000=1 ампер
Iост-остаток от предыдущего измерения тока
В вашем случае я бы считал в мкА/ч,тогда формула будет
C=C+((I+Iост)/36)
Iост=I mod 36
где C-общая потребленная емкость
I-измеренный ток,то есть значение ацп,у вас 1000=1 ампер
Iост-остаток от предыдущего измерения тока
Re: Циклический таймер на ATtmega8A.
Приходишь в магаз , и говоришь - "ребята - вы меня обналули . Это не правильно ! " . "Так нельзя делать!" !
Добавлено after 6 minutes 55 seconds:
[uquote="Novice user",url="/forum/viewtopic.php?p=4014621#p4014621"]Я буду измерять емкость аккумулятора при разряде до определенного напряжения,а не при заряде
В вашем случае я бы считал в мкА/ч,тогда формула будет
C=C+((I+Iост)/36)
Iост=I mod 36
где C-общая потребленная емкость
I-измеренный ток,то есть значение ацп,у вас 1000=1 ампер
Iост-остаток от предыдущего измерения тока[/uquote]
Вы теоретик ! Я практик ! Я уже сделал устройство замера всосанного тока ! По вышеизложенного алгоритма ! И он работает ! И давно ! Может он (алгоритм) не совершенен ... Но он работает как автомат Калашникова!
Добавлено after 6 minutes 55 seconds:
[uquote="Novice user",url="/forum/viewtopic.php?p=4014621#p4014621"]Я буду измерять емкость аккумулятора при разряде до определенного напряжения,а не при заряде
В вашем случае я бы считал в мкА/ч,тогда формула будет
C=C+((I+Iост)/36)
Iост=I mod 36
где C-общая потребленная емкость
I-измеренный ток,то есть значение ацп,у вас 1000=1 ампер
Iост-остаток от предыдущего измерения тока[/uquote]
Вы теоретик ! Я практик ! Я уже сделал устройство замера всосанного тока ! По вышеизложенного алгоритма ! И он работает ! И давно ! Может он (алгоритм) не совершенен ... Но он работает как автомат Калашникова!
Не спрашивай по ком звонит колокол, он звонит по тебе !
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: Циклический таймер на ATtmega8A.
Я тоже практик,тоже собирал свой измеритель емкости,на атмега8+дисплей 1602,но на счет такого алгоритма подсчета не сталкивался (я об остатке от деления)
Re: Циклический таймер на ATtmega8A.
[uquote="Novice user",url="/forum/viewtopic.php?p=4014632#p4014632"]Я тоже практик,тоже собирал свой измеритель емкости,на атмега8+дисплей 1602,но на счет такого алгоритма подсчета не сталкивался (я об остатке от деления)[/uquote]
Очень интересно пообщаться на общие темы ! Вы меня заинтриговали !!! Какие Ваши алгоритмы, какие Ваши достижения ?
Добавлено after 6 minutes 5 seconds:
Вот например Вы написали -"измеритель ёмкости" ! Ёмкости чего ?
Добавлено after 5 minutes 6 seconds:
...не подумайте ничего плохого ! Мне просто интересно !
Добавлено after 5 minutes 14 seconds:
А насчёт "остатка от деления" - видимо это какая то новая математика ! Основаная на "быстрых позитронах", и базонах Хигса.
Очень интересно пообщаться на общие темы ! Вы меня заинтриговали !!! Какие Ваши алгоритмы, какие Ваши достижения ?
Добавлено after 6 minutes 5 seconds:
Вот например Вы написали -"измеритель ёмкости" ! Ёмкости чего ?
Добавлено after 5 minutes 6 seconds:
...не подумайте ничего плохого ! Мне просто интересно !
Добавлено after 5 minutes 14 seconds:
А насчёт "остатка от деления" - видимо это какая то новая математика ! Основаная на "быстрых позитронах", и базонах Хигса.
Не спрашивай по ком звонит колокол, он звонит по тебе !
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: Циклический таймер на ATtmega8A.
Если мы разговариваем о емкости аккумулятора то я и писал о емкости аккумулятора,я тоже могу до ваших слов доеб...ся,например-Вот например Вы написали -"измеритель ёмкости" ! Ёмкости чего ?
а кто его сосет? и почему он сосет а не потребляетЯ уже сделал устройство замера всосанного тока !
Сразу понятно,что вы практик не знающий теории,потому что учились только в первом и втором классе,а вот если бы закончили 3 класс то знали бы что такое "Деление с остатком. Видеоурок по математике 3 класс"А насчёт "остатка от деления" - видимо это какая то новая математика ! Основаная на "быстрых позитронах", и базонах Хигса
шутка
Re: Циклический таймер на ATtmega8A.
Alex_641, я о примере Starichok51 писал. Вроде речь шла о представлении без FP изначально.
Что касается 0.1с - ток заряда батареи не меняется так быстро, чтобы так часто его измерять. Почитайте как работают специлизированные микрухи для измерения ёмкости, вроде такой: https://datasheets.maximintegrated.com/en/ds/DS2740.pdf
Она вообще раз в 3.515с преобразование АЦП делает.
В регистры счета и аккумулятора вообще валятся буквально значения АЦП просто. Преобразование до человеко-читаемых величин уже делаете сами на МК в момент вывода, просто умножая на нужный коэф. в зависимости от номинала шунта. Это можно делать довольно редко, скажем раз 1-2с, нет смысла человеку обновлять инфу быстрее.
Что касается 0.1с - ток заряда батареи не меняется так быстро, чтобы так часто его измерять. Почитайте как работают специлизированные микрухи для измерения ёмкости, вроде такой: https://datasheets.maximintegrated.com/en/ds/DS2740.pdf
Она вообще раз в 3.515с преобразование АЦП делает.
В регистры счета и аккумулятора вообще валятся буквально значения АЦП просто. Преобразование до человеко-читаемых величин уже делаете сами на МК в момент вывода, просто умножая на нужный коэф. в зависимости от номинала шунта. Это можно делать довольно редко, скажем раз 1-2с, нет смысла человеку обновлять инфу быстрее.
-
Самсусамыч
Re: Циклический таймер на ATtmega8A.
[uquote="Александр_73",url="/forum/viewtopic.php?p=4011446#p4011446"]проверю.[/uquote]
Ну что с проверкой? Работает как надо? Или таймер уже без надобности?
Ну что с проверкой? Работает как надо? Или таймер уже без надобности?
-
Александр_73
- Открыл глаза
- Сообщения: 66
- Зарегистрирован: Пт фев 15, 2013 21:08:33
Re: Циклический таймер на ATtmega8A.
Нужен...только огороды "пришли" не вовремя и на работе завал.....сделаю.. обязательно отпишусь..
-
Александр_73
- Открыл глаза
- Сообщения: 66
- Зарегистрирован: Пт фев 15, 2013 21:08:33
Re: Циклический таймер на ATtmega8A.
вот накидал платку.
надо зеркалить и проверить.
надо зеркалить и проверить.
- Вложения
-
- таймер.rar
- (32.94 КБ) 173 скачивания


