Мини-задача о attiny13, ШИМ и кнопках

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

ARV писал(а):...либо придется еще что-то мудрить, а вы не говорите, что именно :)
Чего там мудрить? Опору от питания и все...
Последний раз редактировалось Goodefine Чт сен 03, 2009 14:10:43, всего редактировалось 1 раз.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Реклама
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

идея про АЦП лично мне нравится.
Чем дальше, тем больше становлюсь занудой...
Изображение
Реклама
Аватара пользователя
OBIVAN
Встал на лапы
Сообщения: 84
Зарегистрирован: Вт ноя 25, 2008 18:56:41

Сообщение OBIVAN »

А там все просто включаем внутрений опорник кажется он там 1.1в и делаем опорник для кнопок помойму подойдет любой диод.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

OBIVAN писал(а):А там все просто включаем внутрений опорник кажется он там 1.1в и делаем опорник для кнопок помойму подойдет любой диод.
проще в качестве опорного и питания кнопок использовать Vcc. тогда напряжения будут меняться синхронно и ни каких ошибок, и опять же можно использовать 4, 5, 6 старших разряда АЦП и получим 16, 32, 64 кнопки соответственно и погрешность не будет волновать.
Чем дальше, тем больше становлюсь занудой...
Изображение
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

ARV писал(а):каким? да уж явно не тем, который телят куда-то гонял :)))
вы попробуйте нарисовать схемку и к ней табличку... сами все поймете :) из трех (или скольки угодно) портов оставляем любые 2 (остальные в Z - и мешать не будут) - и получаем то, о чем только что говорили.
Спасибо, разобрался.
Вот только работа сего девайса для 5и выводов,т.к. 1 вывод "убили" на АЦП будет описываться 3х мерной матрицей 5х20х3, а тинька13 это вам не "Эльбрус-3" :)))
а ведь изначально в условии была tiny13 :shock:
Чем дальше, тем больше становлюсь занудой...
Изображение
Реклама
Аватара пользователя
OBIVAN
Встал на лапы
Сообщения: 84
Зарегистрирован: Вт ноя 25, 2008 18:56:41

Сообщение OBIVAN »

Надо пробовать писать сее чудо у меня после пркидок тож появились сомнения что код туда поместится ну на крайняк можна попробовать и 45 тиньку всеравно интересно.
Реклама
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

ну мне такое точно до пенсии не осилить :)))
даже для 4х выводов.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18647
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

тем не менее направление решения задачи хоть и наметилось, но ушло в сторону теоретизирования. практических кодов нет ни для 3-х, ни для 30 светодиодов :) так что пока задача не решена в принципе. а по теории все верно. :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

а как же мое предложение?
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Забрёл тут на сайт ARV, случайно :) , и увидел интересную задумкуhttp://arv.radioliga.com/content/view/164/44/
Решил сделать себе такую, ради нитереса, только на DS1820. Если интересно, то выложу кривой, написаный "по быстрому" код :)
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

конечно интересно, только для большей лучшести приложите и алгоритм, ну согласитесь проше людЯм разбираться будет.

по моему тему пора переименовать.
ну например так: "Тiny13 - это мало или много?"
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

В приложении код. Всё делается в главном цикле (опрос DS, ШИМ). ШИМ конечно лучше в прерывание запихать, но мне лень было :) , делал то так, побаловаться.
Значения ШИМ меняются по таблице. После получения температуры она прнобразуется в три числа LEDR, LEDG, и LEDB.

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

CompTemp:
	clc
	ldi Zl, LOW(datas*2)
	ldi ZH, HIGH(datas*2)
	mov tmp, temper
	add temper, tmp
	add temper, tmp
	add ZL, temper
	in tmp, SREG
	sbrc tmp, 0
	inc ZH
	lpm LEDb, Z+
	lpm LEDg, Z+
	lpm LEDr, Z 
	ret
datas:
.db 200,250,0,	150,250,0,	100,250,0,	50,250,0
.db 0,250,0,	0,250,100,	0,250,150,	0,250,200
.db 0,250,250,	0,250,255,	0,150,250,	0,100,250
.db 0,50,250,	20,50,250,	40,50,250,	50,0,255
Принцип ШИМ:

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

pwm:
	mov tmp, ledr ; tmp<<LEDR
	sbi ledport, 0  ; Включаем диод
	rcall DelDel    ; Задержка
	cbi ledport, 0  ; Выключаем диод
	com tmp        ; Вычисляем обратный код
	rcall DelDel    ; Задержка с новыми параметрами tmp
	mov tmp, ledg ; И так для всех светодиодов
	sbi ledport, 1
	rcall DelDel
	cbi ledport, 1
	com tmp
	rcall DelDel
	mov tmp, ledb
	sbi ledport, 2
	rcall DelDel
	cbi ledport, 2
	com tmp
	rcall DelDel
	ret


DelDel:
	push tmp
	inc tmp
dd:
	dec tmp
	cpi tmp, 0
	brne dd
	pop tmp
	ret
Ну, про опрос датчика писять не буду, только в некоторых местах вставил вызов pwm (опрос-то в главном цикле :)) , мерцает однако)
В приложении текст программы (АСМ ессно :) ). Схему не выкладываю, и так всё ясно.
А, чуть не забыл, вот видео работы:

http://smotri.com/video/view/?id=u12873717707
На звуки не обращайте внимания, ет жена ребёнка писать заставляет :)
Вложения
13.asm
(4.31 КБ) 429 скачиваний
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

я программный шим немного по другому делал, это как раз кусок от задания ARV, 6 каналов - 6 байтовых переменных с1-с6

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

next:	
	cp	c1,n
	brne	_c2
	sbi	B,0
_c2:
	cp	c2,n
	brne	_c3
	sbi	B,1
_c3:
	cp	c3,n
	brne	_c4
	sbi	B,2
_c4:
	cp	c4,n
	brne	_c5
	sbi	B,3
_c5:
	cp	c5,n
	brne	_c6
	sbi	B,4
_c6:
	cp	c6,n
	brne	_next
	sbi	B,5
	
_next:
	inc	n
	brne	next			; если не 0 переход на след цикл
	clr	tmp
	out	B,tmp			; включить все разряды
	rjmp	next
В - это порт В, чтобы меньше букв писать.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Хм..., интересный вариант, надо иметь в виду, и работает явно быстрее.
Я до этого с ШИМом не заморачивался, что первое в голову пришло, то и слепил :)
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

а если n изменять в каком нибуть прерывании, то частоту ШИМа можно будет менять.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение Neekeetos »

ARV писал(а): предложите решение, как на 6 ног (вместе с ресетом) повесить 6 светодиодов и 6 кнопок :) а улыбаться из-за угла каждый может :)
Все зависит от требуемой скважности(если исключить проблемы с потреблением тока), например не получится сделать более 5 полноценных шимов с макс скважностью 100% на тини13, тк выходов только 5, если делать хрень вроде чарлиплексинга то на эти 5 теоретически можно залепить 16 светодиодов (которые все будут еле светить).Кнопок можно сделать независимых 9 или до тыщи если не ожидаются одновременные нажатия, используя только один вход ацп на лапке сброса. В чем смысл задачи то?
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение GP1 »

Neekeetos писал(а): например не получится сделать более 5 полноценных шимов с макс скважностью 100% на тини13
а я то не знал, 6 каналов сделал :))) (см.выше на два поста :wink: )
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение Neekeetos »

GP1 писал(а): а я то не знал, 6 каналов сделал :))) (см.выше на два поста :wink: )
Иногда лучше жевать чем говорить, я в своем посте указал что один вывод используется чисто под кнопки, у тебя очевидно кнопок не было. Что по делу имеешь сказать?

ЗЫ: http://attiny.com/kitt.htm, будем считать что это почти максимум который можно подключить к мк. формула там N*(N+1), где N это количество пинов задействованных на вывод. Для 6 максимум будет 30 светодиодов , для 5 более скромно - 20.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение Yellow Tiger »

Neekeetos писал(а):Иногда лучше жевать чем говорить, ...
- я в своем посте указал что один вывод используется чисто под кнопки, ...
- формула там N*(N+1), где N это количество пинов задействованных на вывод.
Эта формула как раз подходит для кнопок (только "пины там задействуются на ввод") - их действительно можно запихнуть 30 штук, а вот светодиоды так подключить, не нарушив условий задачи, не удастся, так как это включение возможно только при поочередном зажигании светодиодов, что исключит требуемую реализацию ШИМ.

Зато, первое твое утверждение - абсолютно верно!!! Изображение
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение Neekeetos »

Yellow Tiger писал(а):Эта формула как раз подходит для кнопок (только "пины там задействуются на ввод") - их действительно можно запихнуть 30 штук, а вот светодиоды так подключить, не нарушив условий задачи, не удастся, так как это включение возможно только при поочередном зажигании светодиодов, что исключит требуемую реализацию ШИМ.
Тут вообще хоть кто-то читал условия то? Вообще то чарлиплексинг не противоречит условиям и полностью подходит. Я свое первое сообщение написал именно потому что задача сама по себе довольно странная, тк делается без проблем 30 светодиодов но светить они будут тухло если не использовать внешних ключей, зачем такое может понадобится?
Yellow Tiger писал(а):Зато, первое твое утверждение - абсолютно верно!!!
Да конечно, лучшеб ты молчал со своими кнопками :))
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»