Например TDA7294

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





Текущее время: Вт июл 01, 2025 23:06:29

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


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



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 256 ]    , 2, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 25, 2009 15:55:08 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
есть генераторы с изолированным ротором(вал не выходит наружу), на валу внутри есть груз, который раскручивается от инерции.
главное установить ось генератора соосно колесу. ну и добавить батарею аккумуляторов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 25, 2009 19:27:47 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Ср янв 21, 2009 00:45:33
Сообщений: 361
Рейтинг сообщения: 0
Насчет питания: по двум сторонам колеса (под осевые болты) две текстолитины фольгированные, к ним + и - от акомы мотоцикловской, на платах-шетки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 25, 2009 23:56:29 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Stalker46 писал(а):
или: разобрать диск на ободе и придумать, как туда прикошачить динамогенератор ( что на великах), оттдуа провести провода в натяжку и все)))

Не лучшая идея, динамо, то что на великах, оно неподвижное, а у нас линейка на колесе по идее закреплена, поэтому придется делать скользящие контакты типа щеток в эл. дрели и т.п. это дополнительный геморрой.
В каком-то из номеров радио были то-ли часы из компьютерного кулера, то-ли еще что-то, так вот там для подачи питания использовался хитрый трансформатор, с вращающейся вторичной обмоткой, от которой как раз и производилось питание вращающейся линейки светодиодов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 26, 2009 00:20:27 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
В общем описываю весь проект:
1. один датчик хола (или ХоллА )
2. две линейкисветодиодов на ATTiny2313 по 15 через 180 градусов)))
3. думаю все таки с изменяемой задержкой выставляемой по таймеру МК TCCR1.
ВОПРОС В ТОМ КАК РАЗДЕЛИТЬ ЧИСЛО (допустим)31250={Ocr1ah=0x7a Ocr1al=0x12}
на 160 или 256 да хоть на 2!!!!!!!!!!!
В асемблере уже двое суток мозг напрягаю, КАК???
Железо на моторе не правиться и ни вариться и ни краситься. только и думаю как прогу написать!!!
Чтоб число более ли менее совподало с желаемым результатом 1h=0xff 1L=0xff (КАК делить в этом случае??????? и какие операторы использовать с наименьшей погрешностью:((
) .


С питанием ни каких проблем. МАсса (-) всем извесный и щетка с вилки на диск колеса(+) (испытаная система чем меньше радиус от оси вращения тем стобильнее питание).
вот и все питание (конечно кренка(или преобразователь12-5V) ,Фильтр, конденсаторы)

_________________
Чем больше думаеш, тем дольше уснуть не можеш...


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 26, 2009 23:44:43 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
SeamaNCOS писал(а):
ВОПРОС В ТОМ КАК РАЗДЕЛИТЬ ЧИСЛО (допустим)31250={Ocr1ah=0x7a Ocr1al=0x12}
на 160 или 256 да хоть на 2!!!!!!!!!!!


на два делить просто : сдвиг числа на один разряд вправо)))
на 4 - сдвиг на 2 разряда вправо.
на 160 можно последовательно на 16 и 10 -
1) на 16 сдвиг на 4 разряда вправо
2) на 10 - привожу макрос :
Код:
;-------деление 16 разрядного числа на константу
.macro Div
   clr Rest      ;очистка остатка
   ldi tmp,16   ;загрузка в счетчик кол-ва разрядов
loop:
   lsl @0L      ;сдвиг влево
   rol @0H      ;
   rol Rest      ;
   subi Rest,@1   ;вычитаем из остатка константу
   brlo NotBigger   ;если остаток =< 0, то переходим на метку
   inc @0L      ;заносим единицу в младший разряд
   rjmp dalee   ;продолжаем разговор ;)
NotBigger:
   subi Rest,-(@1)   ;отменяем вычитание
dalee:
   dec tmp      ;уменьшаем кол-во разрядов на 1
   brne loop   ;возвращаемся в начало цикла, если не все разряды сдвинуты
.endm

для использования макроса нужно обьявить 16 битную переменную из двух 8 битных регистров. первый операнд - 16 битное делимое, второй операнд - 8 битный делитель. Rest и tmp изменяются. если нужно их сохранить, используйте push и pop. надеюсь помог)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 27, 2009 07:25:34 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
Спосибо :)
как я понял
@0H - старший регистр (в моем случае копия числа из таймера OCR1AH)
@0L- младший регистр (в моем случае копия числа из таймера OCR1AL)
@1 - то на что делим ( допустим 0x10)

_________________
Чем больше думаеш, тем дольше уснуть не можеш...


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 27, 2009 10:16:19 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
да, все правильно)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс мар 29, 2009 18:00:12 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Сообщений: 232
Откуда: Ульяновск
Рейтинг сообщения: 0
Посмотрел я тот проект зарубежный. Здорово, конечно. Но вот 200 диодов будут стоить 2000р - дороговато. По крайней мере для меня. И жрать будут дофига. Написать программу - проще пареной репы. Вот собрать железо - это действительно сложно. А если дождь? А если грязь? Как потом это ЧУДО отмывать?! Может кто-то предложит широко доступный, подходящий для наших целей корпус?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 30, 2009 19:27:27 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
Корпус собираюсь делать из двух пластин оргстекла. А светодиоды надо было покупать как герлянды у китайцев под новый год :) выходило около 1.5-2 р за светодиод(+ провода и резистор на каждом светодиоде)

_________________
Чем больше думаеш, тем дольше уснуть не можеш...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 09:17:38 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
Написал я прошивку(только прерывания без индикации) но она никак работать не хочет.
Сделал так как писал Evgen88 (как изначально и собирался делать сам)только все же на Attiny2313
[quote="Evgen88"]Кароче делать нада так:

1. забуть про 2313 - делай на меге (например Мега48 стоит почти также, но какая разница!)
2. запускаеш 16 битный таймер
3. делаеш захват значения таймера (нога ICR) датчиком хола
4. количество столбцов должно быть 256 (это шоб облегчить жизнь твоему контроллеру :) )
5. береш старший байт захваченного значения 16 битного тайммера и это значение заносиш в регистр сравнения 8 битного таймера - по переполнению которого будет выводится новая строчка
6. в момент захвата 16 битного таймера обнуляеш оба таймера и записываеш новое значение сравнения в 8 битный таймер.
/quote]

Подозрения на то что при обнулении таимера0 обнуляется и таимер1
т.к. с Tcnt1h всегда читаеться 0.....
В чем может быть дело ???


Вложения:
Комментарий к файлу: Схема п протеусе 7.4 sp3
code.zip [28.05 KiB]
Скачиваний: 488
code.asm [2.35 KiB]
Скачиваний: 484

_________________
Чем больше думаеш, тем дольше уснуть не можеш...
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 10:07:53 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
Блин, немного не в тему, зачем делать в протеусе? неужели нельзя сделать в железе и на нем проверять?
1)удобнее в тысячу раз.
2)нет никакой уверенности,что протеус правду показывает, учитывая все его глюки.

по поводу кода:
Код:
ldi Temp1,0b11111111
out ddrb, Temp1 ; настройка порта b

ldi Temp1,0b10111111
out ddrb, Temp1 ; настройка порта b

зачем два раза? еще и по-разному....
Код:
.def Temp4=R19
.def Temp5=R19
- это тоже настрожило


Код:
ldi Temp1,0b00000011
out [b]Tccr0[/b],Temp1 ;тактовый сигнал /64

в Tiny2313 для этих целей используется регистр TCCR0B


Код:
;******Прерывание по совподению ч.с. и таимер0*****
TIMER0_COMPA:
ldi temp1,0
OUT Tcnt0,temp1  ;обнуляем таимер0
inc temp4
reti                      ;выход из обработчика

здесь обязательно сохраняйте SREG а потом восстанавливайте.

теперь программные недочеты:
не совсем понял, как вы боретесь с дребезгом, если за счет temp2, то вы явно перестарались... ну сработает у вас кнопка один раз и все... не будет больше temp2 = 0.... таким образом весь ваш код сводит на НЕТ вызов обработчика срабарывания кнопки... думаю поэтому и не работает...

насчет алгоритма который вам подсказал Evgen88.
он говорил о прерывании захвата, а не о банальном считывании из счетного регистра. может быть это не принципиально, но зачем огород городить, если можно сделать по прерыванию( если надумаете так сделать, опять таки не забудьте про SREG)
Код:
.equ   ICP1addr   = 0x0003   ; Timer/Counter1 Capture Event


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 10:14:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
и еще в догонку:))
Evgen88 писал(а):
Кароче делать нада так:
4. количество столбцов должно быть 256 (это шоб облегчить жизнь твоему контроллеру :) )

скорее бедолаге программеру, который не может поделить 16 битное число на 8 битное))))


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 10:40:07 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
В протеусе потому как нет осцилографа. да и в нем видно работает код или нет(за место кнопки ставим генератоp, меняем частоту считая импульсы с PB0).

Код поправил. Кнопка работает проверял (в место Tcnt1h при чтении ставил Tcnt1l частота меняеться).

Сохранять SREG куда ? точнее как или что в него сохранять(значение таимера1)?
так?
mov ICP1a,temp1

_________________
Чем больше думаеш, тем дольше уснуть не можеш...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 11:28:59 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
насчет кнопки не буду спорить, не проверял, работает и слава богу....
SREG сохранять:
SREG-речистр флагов лог/мат операции микроконтроллера

если у тебя происходит прерывание перед проверкой условия
типа: breq или brne... ну и подобные, которые используют флаги регистра SREG для принятия "решения"
и в этом прерывании опять происходит какая то операция, которая меняет регистр SREG, то после возврата в точку, откуда прерывались, это условие может сработать неверно, поэтому предлагают :
Код:
;---обработчик прерывания---
in tmp,sreg
push tmp
----------
-------какой то код-------
----------
pop tmp
out sreg,tmp
reti
;----------


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 16:05:52 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
ibiza11 писал(а):
... это условие может сработать неверно, поэтому предлагают :

Зачем же Вы новичку советы неправильные даете?! Ваш код будет портить регистр tmp, в результате, избавившись от одного глюка можно приобрести другой. Делать нужно либо так
Код:
;---обработчик прерывания---
push tmp
in tmp,sreg
push tmp
----------
-------какой то код-------
----------
pop tmp
out sreg,tmp
pop tmp
reti
;----------

Либо так как показано ниже, но в этом случае необходимо, чтобы tmp использовался только для сохранения SREG и ни для чего другого. Также в этом случае нельзя использовать вложенные прерывания, т. е. разрешать прерывания в обработчике прерывания.

Код:
;---обработчик прерывания---
in tmp,sreg
----------
-------какой то код-------
----------
out sreg,tmp
reti
;----------


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 04, 2009 22:27:49 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
действительно)) :oops:
тогда потимально будет просто сохранять в регистр и нигде его больше не использовать.

а насчет прерывания в прерывании не понял идеи... почему же нельзя? если так же сохранить SREG???


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 05, 2009 02:22:37 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
ibiza11 писал(а):
действительно)) :oops:
тогда потимально будет просто сохранять в регистр и нигде его больше не использовать.

а насчет прерывания в прерывании не понял идеи... почему же нельзя? если так же сохранить SREG???

В принципе Ваш способ тоже имеет право на жизнь, при одном условии - если tmp будет отведен только под сохранение SREG.
Про прерывания в прерывании относилось только к тому случаю когда для сохранения SREG используется регистр, а не стек. Посмотрите сами, вот у нас возникло прерывание, мы сохранили SREG и разрешили прерывания внутри обработчика, если внутри этого обработчика возникнет другое прерывание, то оно вызовет свой обработчик, в котором наверняка тоже нужно сохранять SREG, а у нас для этого используется регистр, и в нем уже есть какое-то значение SREG, значит это значение затрется, на его место встанет другое, и при извлечении может получиться косяк.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 05, 2009 07:38:53 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
Сделал так

TIMER0_COMPA:
push tmp
in tmp,sreg
push tmp
inc temp4
ldi temp1,0
OUT Tcnt0,temp1 ;обнуляем таимер0

pop tmp
out sreg,tmp
pop tmp
reti

и так

TIMER0_COMPA:
in tmp,sreg
inc temp4
ldi temp1,0
OUT Tcnt0,temp1 ;обнуляем таимер0

out sreg,tmp
reti

и вот так пробовал

TIMER0_COMPA:
in temp6,Tcnt1h
in temp5,Tcnt1l
inc temp4
ldi temp1,0
OUT Tcnt0,temp1 ;обнуляем таимер0


out Tcnt1h,temp6
out Tcnt1l,temp5
reti



неработает.. все равно в Tcnt1h все время 0
temp5.temp6.tmp отводил только для SREG

_________________
Чем больше думаеш, тем дольше уснуть не можеш...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 05, 2009 11:59:47 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 21
Рейтинг сообщений: 143
Зарегистрирован: Сб фев 21, 2009 13:11:40
Сообщений: 1900
Откуда: Москва
Рейтинг сообщения: 0
smac писал(а):
если tmp будет отведен только под сохранение SREG.

тогда нет смысла операции push:)

smac писал(а):
значит это значение затрется...

если использовать один и тот же регистр, то естественно затрется, я думаю это и новички понимают.
для тех кто не понял:
если для сохранения регистра SREG используется регистр r0-r31 и разрешается прерывание в прерывании, то для каждой операции сохранения нужно использовать отдельный регистр.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 12:42:45 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср дек 10, 2008 15:10:59
Сообщений: 107
Откуда: KPACHO9PCK
Рейтинг сообщения: 0
Наконец то заработало :))

сохранил Tcnt1h и Tcnt1l в отдельно отведенные регистры до прерывания и востанавливал в прерывании.
Также запретил прерывание при индикации и обработке кнопки.

Теперь проблема с железом :? при одном нажатии кнопка срабатывает 2а (или больше) раза из-за этого в железе не работает(постоянно обнуляет число сравнения), а в протеусе без проблем с частатой внешнего сигнала от 1 до 20Гц(это те граници в каторых проверял).

Буду думать как изменить обработчик кнопок чтоб не глючил... Может задержку после чтения поставить ??

С опто парой работает нормально :)) буду писать рисунок какой нибудь и светодиодов добавлю будет 14(пока8)
Решил остановиться пока на 1 полоске (при 3Гц уже нормально видно)

вот прошивка(пока без рисунка)


Вложения:
code.asm [2.6 KiB]
Скачиваний: 653

_________________
Чем больше думаеш, тем дольше уснуть не можеш...
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 256 ]    , 2, , , ...  

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


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

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


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

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


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