Страница 1 из 2

Как сделать счетчик импульсов на AVR

Добавлено: Пт фев 17, 2006 19:18:32
Тимур
Типа прикрутить фотодиод и фотоприемник??
Спасибо за ответ

Добавлено: Пт фев 17, 2006 19:26:26
Serega
Товарищ! У нас правило: излагать проблему целиком :) Для чего счетчик? Где он будет стоять? Че делать? Каковы параметры? и т.п. :)

Добавлено: Пт фев 17, 2006 19:34:49
Kot
Ну что значит для чего?! Мяу! Разумеется, для измерения количества взмахов кошачьего хвоста - ну что за вопрос?
Все остальное просто не имеет смысла.

Счетчик

Добавлено: Пт фев 17, 2006 21:09:33
Тимур
Вообщем для того что бы посчитать число проходящих
через него предметов.

Параметры сам не знаю.

Добавлено: Вт фев 21, 2006 12:28:15
Spider
Я думаю, что для тупого подсчета "взмахов хвоста" достаточно повесить конструкцию из фотоприемника, транзистора и резисторов на таймер-счетчик с внешним прерыванием.
А если еще охото знать время прибывания хвоста
в зоне датчика (а заранее знаю скорость можно определить его толщину), то можно перецепить ту же конструкцию на прерывание настроенное на срабатывание по смене состояния и мерить время между срабатываниями.

Re: Как сделать счетчик импульсов на AVR

Добавлено: Вс апр 18, 2010 02:19:33
Gomovich
Помогите разработать схему

Re: Как сделать счетчик импульсов на AVR

Добавлено: Пн авг 22, 2011 17:57:17
.ignore
Энкодер и Bascom-AVR. Счетчик импульсов

http://avrproject.ru/publ/ehnkoder_i_ba ... v/1-1-0-14

Изображение

код в Bascom-AVR:

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

$regfile = Attiny2313.dat
$crystal = 8000000

Dim W As Word

Dim N1 As Byte
Dim N2 As Byte
Dim N3 As Byte
Dim N4 As Byte
Dim N5 As Byte
Dim N6 As Byte

Dim M1 As Long
Dim M2 As Long
Dim M3 As Long
Dim M4 As Long
Dim M5 As Long
Dim M6 As Long

Ddrd = &B11011011         ' аноды
Ddrb = &B11111111         ' сегменты

Config Int0 = Falling     ' прерывание INT0 по нисходящему фронту (c + на -)
On Int0 Encod

Enable Interrupts
Enable Int0

Do        ' в главном цикле отображаем количество импульсов

Portd = &B11111110

Select Case N1
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Portd = &B11111101

Select Case N2
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Portd = &B11110111

Select Case N3
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Portd = &B11101111

Select Case N4
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5


Portd = &B10111111

Select Case N5
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Loop

End

Encod:              ' тут узнаем в каком направлении вращают ручку энкодера

 If Pind.5 = 1 Then        ' если на ноге единица (импульс не пришел) тогда
 Incr W                    ' инкременируем переменную (увеличиваем на 1)
 Else                      ' в обратном случае
 Decr W                    ' декрементируем переменную (уменьшаем на 1)
 End If
 Waitms 5                  ' ждем пока утихнет дребезг контактов         
 Gifr = 64                ' сбрасываем регистр хранения прерывания INT0

' а тут готовим переменную к выводу на дисплей

M1 = W
M2 = M1
M3 = M1
M4 = M1
M5 = M1

M1 = M1 / 10000        ' обработка первого разряда
N1 = Abs(M1)

M2 = M2 Mod 10000      ' обработка второго разряда
M2 = M2 / 1000
N2 = Abs(M2)

M3 = M3 Mod 1000        ' обработка третьего разряда
M3 = M3 / 100
N3 = Abs(M3)

M4 = M4 Mod 100         ' обработка четвертого разряда
M4 = M4 / 10
N4 = Abs(m4)

M5 = M5 Mod 10           ' обработка пятого разряда
N5 = Abs(m5)

Return

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб авг 27, 2011 17:47:42
vervoolf
Есть ли смысль собирать?у нас в новосибирске с LCD стоит не больше 450 рублей (простой), при стоймости тиньки2313 126 рублей?

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб авг 27, 2011 19:22:13
nictrace
о! моя тема! :) будем наблюдать!

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб авг 27, 2011 20:14:31
Meteor
vervoolf писал(а):у нас в новосибирске с LCD стоит не больше 450 рублей (простой), при стоймости тиньки2313 126 рублей?

Это где вы берете такие тиньки 2313?
Давно было, но покупал в новосибирском представительстве Аргуссофта (на советской) по 37р\шт. Еще можно вточку опоры заглянуть (была на Коммунистической) а не шастать по Микронике, Радиоле и пр. Современные цены не знаю.

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб авг 27, 2011 20:43:37
Jack_A
vervoolf писал(а): у нас в новосибирске с LCD стоит не больше 450 рублей (простой), при стоймости тиньки2313 126 рублей?


Богатенькие Буратины ! Я в нашем захолустном Минске за 1$ покупал. За 3$ - AT90USB162. Вот те и кризис с инфляцией.

Re: Как сделать счетчик импульсов на AVR

Добавлено: Пт июн 29, 2012 15:46:54
eXL
А не подскажет ли ALL схему счетчика с таймером.
Т.е. выставляем время счета 5...10...45сек...1...5...10 минут(т.е. регулируемое время) и считаем число импульсов пришедших за это время.

Re: Как сделать счетчик импульсов на AVR

Добавлено: Пт июн 29, 2012 18:10:22
BOB51
любой частотомер с изменяемой длительностью "окна" счета

Re: Как сделать счетчик импульсов на AVR

Добавлено: Пт июн 29, 2012 23:22:03
Jack_A
eXL писал(а):А не подскажет ли ALL схему счетчика с таймером.
Т.е. выставляем время счета 5...10...45сек...1...5...10 минут(т.е. регулируемое время) и считаем число импульсов пришедших за это время.


Ну так сам же весь алгоритм расписал, и все понятно : 2 счетчика, на один подаются считаемые импульсы, на другой - таймерные кварцованные, стартуются и останавливаются одновременно. А если на АВР, так это все вместо железки реализуется внутри МК программно. Программа - пара страничек ассемблера. Делов-то.

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб июн 30, 2012 16:42:37
eXL
BOB51

Где есть частотомеры с регулируемым плавно временем счета ?\
Ссылку плиз.

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб июн 30, 2012 16:43:26
eXL
Jack_A писал(а):
eXL писал(а):А не подскажет ли ALL схему счетчика с таймером.
Т.е. выставляем время счета 5...10...45сек...1...5...10 минут(т.е. регулируемое время) и считаем число импульсов пришедших за это время.


Ну так сам же весь алгоритм расписал, и все понятно : 2 счетчика, на один подаются считаемые импульсы, на другой - таймерные кварцованные, стартуются и останавливаются одновременно. А если на АВР, так это все вместо железки реализуется внутри МК программно. Программа - пара страничек ассемблера. Делов-то.


Дуб я в программировании :(

Re: Как сделать счетчик импульсов на AVR

Добавлено: Сб июн 30, 2012 17:12:38
BOB51
тогдыть ничем не поможем - обЪявляй тему как "сделайте мне того и этого под заказ" :)))

Re: Как сделать счетчик импульсов на AVR

Добавлено: Вс июл 01, 2012 13:17:45
Jack_A
Открою страшную тайну ( только для участников ветки "Цифровая техника" :) ) - частотомеры можно делать и без МК ! Более того, именно так их и делали со времен Петра I вплоть до Ильича II . Легкими движениями руки за полдня частотомер паяется на рассыпухе типа 1533, 155 и т.п. Точность порядка 10^-5 -- легко, а если больше, надо мудрить с термостатированием опорного генератора или питаться от цезиевого стандарта частоты ( у кого есть :) )

Re: Как сделать счетчик импульсов на AVR

Добавлено: Ср май 14, 2014 15:59:33
Jman
Можно ли сделать счетчик на 5 каналов, на Тиньке 2313?

Re: Как сделать счетчик импульсов на AVR

Добавлено: Ср май 14, 2014 16:37:23
akl
Можно.