|
|
|
|
49190 149 0 0 |
|
Опции темы | Поиск в этой теме |
31.10.2010, 01:04 | 61 |
Увлеченный
|
дайте плиз нормальную схему элементарного програматора. нужно один раз запрограмировать ATtiny25. на один раз не хочется пока собирать крутой програматор
в интернете искал, какойто бред находит на сколько я понимаю "5 проводков" не подходит для ATiny25 судя с этого сайта http://www.microcontrollero... |
31.10.2010, 02:55 | 62 |
Завсегдатай Фонарёвки
|
Я начинал с этого:
http://easyelectronics.ru/a... но это если в компе есть COM-порт. Иначе, программатор надо собирать для USB. Самый простой, не вводящий в рекурсию "соберите программатор, чтобы прошить программатор": http://easyelectronics.ru/s... Требуется только FT232RL, которая работает сразу. Все остальные USB программаторы сделаны на мк, которые сами ещё надо прошить Из не-USB программаторов есть только LPT и COM. |
31.10.2010, 02:06 | 63 |
Увлеченный
|
у меня есть и LPT и COM. на сколько я понимаю програматор " 5 проводков" не катит под ATiny25 ( http://www.microcontrollero... )
|
31.10.2010, 10:33 | 64 |
Завсегдатай Фонарёвки
|
По идее должен работать, нужно найти лишь подходящий софт(Глянуть в CodeVisionAVR, AVRProg и т.п.) Интерфейс программирования то у них одинаков - SPI
|
31.10.2010, 22:32 | 65 | |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 05.09.2022 18:18
Сообщений: 1090
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Цитата:
|
|
31.10.2010, 23:21 | 66 | |
Завсегдатай Фонарёвки
|
Цитата:
|
|
01.11.2010, 00:01 | 67 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1362
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
А придётся. Человек хочет залить прогу, которая потребует 8МГц тактовой...
|
01.11.2010, 03:14 | 68 |
Завсегдатай Фонарёвки
|
Ну я ж не вкурсе, что он хочет залить
|
25.01.2011, 21:18 | 69 | ||
Увлеченный
|
Похвастаюсь своеё первой прогой для мк она просто моргает светодиодом, было немного сложновато, т.к. до этого с ассамблером дел вообще не имел, как и с МК в общем... но всётаки...
быдлокод:
|
||
25.01.2011, 21:20 | 70 | ||
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1362
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Жесть ))... "Полотно" или "китайский код". Но работает, уже хорошо. Оптимизируй. Удали ненужные очистки регистров, заюзай таймер, слип и прерывание ...
Ну или хотя бы оформи задержку подпрограммой и в те места, где нужно застрять, просто тули команду типа rcall deley. А сама задержка будет где-то внизу кода написана только один раз. Почитай за подпрограммы... Кстати для тех кто не в курсе. В качестве стенда юзаеться RGB индикатор. Вот по видео можете прикинуть яркость светодиода при его скромном потреблении... Ради спортивного интереса написал свою версию : Код:
;Какая-то мигалка на ATtiny45 v1.0 .INCLUDE "tn45def.inc" ;Векторы прерываний rjmp RESET reti reti reti rjmp Over1 reti reti reti reti reti reti reti reti reti reti ;Конфигурация RESET: Ldi R16, HIGH(RAMEND) ;инициализация стека out SPH, R16 Ldi R16, LOW(RAMEND) out SPL, R16 ldi R16, 0b00001111 ;Запуск таймера1, clk/16384 out TCCR1, R16 ldi R16, 0b00000100 ;Включение Over1 out TIMSK, R16 ldi R16, 0b00000111 ;PB0, PB1 и PB2 - выходы out DDRB, R16 ldi R16, 0b00100000 ;Sleep, режим Idle out MCUCR, R16 sei ;Разрешить прерывания ;Программа main: sbi PORTB, 0 ;Красный sleep cbi PORTB, 0 sleep ldi R16, 0b00000011 ;Желтый out PORTB, R16 sleep ldi R16, 0b00000000 out PORTB, R16 sleep sbi PORTB, 1 ;Зелёный sleep cbi PORTB, 1 sleep ldi R16, 0b00000110 ;Голубой out PORTB, R16 sleep ldi R16, 0b00000000 out PORTB, R16 sleep sbi PORTB, 2 ;Синий sleep cbi PORTB, 2 sleep ldi R16, 0b00000101 ;Фиолетовый out PORTB, R16 sleep ldi R16, 0b00000000 out PORTB, R16 sleep ldi R16, 0b00000111 ;Белый out PORTB, R16 sleep ldi R16, 0b00000000 out PORTB, R16 sleep rjmp main ;Прерывание таймера Over1: ldi R16, -150 ;Задержка out TCNT1, R16 reti Код:
;Какая-то мигалка на ATtiny45 v1.1 .INCLUDE "tn45def.inc" ;Векторы прерываний rjmp RESET reti reti reti rjmp Over1 reti reti reti reti reti reti reti reti reti reti ;Конфигурация RESET: Ldi R16, HIGH(RAMEND) ;инициализация стека out SPH, R16 Ldi R16, LOW(RAMEND) out SPL, R16 ldi R16, 0b00001111 ;Запуск таймера1, clk/16384 out TCCR1, R16 ldi R16, 0b00000100 ;Включение Over1 out TIMSK, R16 ldi R16, 0b00000111 ;PB0, PB1 и PB2 - выходы out DDRB, R16 ldi R16, 0b00100000 ;Sleep, режим Idle out MCUCR, R16 sei ;Разрешить прерывания ;================================================================== ;Основная программа. Тут может быть любой код, не использующий R25. loop: sleep rjmp loop ;================================================================== ;Прерывание таймера (мигалка) Over1: push R16 ;Сохранение содержимого используемых регистров в стек in R16, SREG push R16 push R30 push R31 ldi R16, -150 ;Обновление интервала таймера out TCNT1, R16 clr R16 ;Вычисление адреса текущего состояния ldi ZL, low(mach1) ldi ZH, high(mach1) add ZL, R25 adc ZH, R16 icall ;Вызов текущего состояния, как подпрограммы pop R31 ;Извлечение содержимого из стека обратно в регистры pop R30 pop R16 out SREG, R16 pop R16 reti ;Выход из прерывания mach1: sbi PORTB, 0 ;Включить красный ldi R25, (mach2-mach1) ;Загрузить относительный адрес следующего автомата ret mach2: cbi PORTB, 0 ;Выключить красный ldi R25, (mach3-mach1) ret mach3: in R16, PORTB ;Включить желтый ori R16, 0b00000011 out PORTB, R16 ldi R25, (mach4-mach1) ret mach4: in R16, PORTB ;Выключить желтый andi R16, 0b11111000 out PORTB, R16 ldi R25, (mach5-mach1) ret mach5: sbi PORTB, 1 ;Включить зелёный ldi R25, (mach6-mach1) ret mach6: cbi PORTB, 1 ;Выключить зелёный ldi R25, (mach7-mach1) ret mach7: in R16, PORTB ;Включить голубой ori R16, 0b00000110 out PORTB, R16 ldi R25, (mach8-mach1) ret mach8: in R16, PORTB ;Выключить голубой andi R16, 0b11111000 out PORTB, R16 ldi R25, (mach9-mach1) ret mach9: sbi PORTB, 2 ;Включить синий ldi R25, (mach10-mach1) ret mach10: cbi PORTB, 2 ;Выключить синий ldi R25, (mach11-mach1) ret mach11: in R16, PORTB ;Включить фиолетовый ori R16, 0b00000101 out PORTB, R16 ldi R25, (mach12-mach1) ret mach12: in R16, PORTB ;Выключить фиолетовый andi R16, 0b11111000 out PORTB, R16 ldi R25, (mach13-mach1) ret mach13: in R16, PORTB ;Включить белый ori R16, 0b00000111 out PORTB, R16 ldi R25, (mach14-mach1) ret mach14: in R16, PORTB ;Выключить белый andi R16, 0b11111000 out PORTB, R16 clr R25 ;Сбросить адрес ret
|
||
24.02.2011, 11:13 | 71 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1362
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Всем здрасти . Пишу программу на преобразователь, львиную долю уже написал. Вот сейчас пишу алгоритм для кнопки, после выкипания мозга пришлось всё картинками раскладывать, тогда хоть смог не запутаться в режимах...
Вот для наглядности, как инструкция пользования: Вложение 3862 В общем всё сложно на первый взгляд, но должно получится юзабельно. Механизм запускается при любом изменении состояния кнопки, и дальше анализирует состояния этих блоков в нём. Если просто нажать первый раз, то получим комбинацию 1000 и придём к 8-му автомату. Что он делает - написано ниже. Запускает драйвер на малой мощности и заводит таймер. Допустим мы отпустили кнопку спустя 0,2с (уже подобрано экспериментально на практике) и таймер уже заглох и выдал ноль - получаем комбинацию 0000 и приходим к 0-му автомату. Что он делает вы видите. Если отпустить раньше 0,2с - 0100 - 4-й автомат сбрасывает таймер и не влияет на режим преобразователя. Кнопка как бы зафиксировалась на малой мощности. Если мы теперь нажмём кнопку, то попадём либо 12-й автомат, который увеличивает мощность до средней, либо в 8-й. который начинает всё с начала. И так 4 режима (до 4-х нажатий подряд), каждый без фиксации и с фиксацией. Последний режим - индикация заряда батареи миганиями на самом слабом режиме. Если вы поняли механизм и научились читать эту картинку - можете проанализировать любые возможные комбинации нажатий кнопки. Я всё это пишу чтоб выслушать ваше мнение. Может у кого-нибудь есть какие-нибудь предложения? Очень похожий механизм я уже испытал на прототипах драйверов к сини, у которых ЦАПы подвели. Там механизм был чуть проще (всего 2 режима) и немного топорно организован. Мне очень понравился. Из недостатков только требования к кнопке. Она должна так же хорошо работать как в мышке. И ещё я отвлекался на попытку перепрыгнуть с мощного режима на малый без выключения (остальные манипуляции делаются машинально, привычка юзанья левой кнопки мышки), но тут эта проблема уже решена - можно гулять кругами... P.S. Мощность каждого режима настраивается подстроечником на плате (подстроечник один и "многооборотный") и при выходе из режима результат запоминается. Изменение мощности происходит плавно в обе стороны, с линейно зависящей от текущего уровня скоростью. Полное изменение где-то за секунду-две. Если кому-то покажется что режимов слишком много - никто не заставляет нажимать кнопку больше необходимого, а на всё что выше можно настроить одинаковую мощность или даже режим индикации (он в активен в режимах с нулевой мощностью). |
24.02.2011, 12:02 | 72 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 05.09.2022 18:18
Сообщений: 1090
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Обалдеть инструкция, мозги сломаешь
0.2 сек для разделения ИМХО маловато... |
24.02.2011, 12:08 | 73 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1362
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
С какой скоростью ты нажимаешь кнопку на мышке при двойном клике? Вот такие интервалы и тут наиболее удобные. Их изменить не трудно. Может вообще втулить переменную, которую можно будет крутить подстроечником. Вот только каким событием вызывать настройку этого дела? Подстроечник один на все режимы.
Индикация заряда будет на том режиме, где мощность выкручена до минимума. Пять миганий, с интервалами в 0,2с, для максимального заряда думаю нормально будет... |
24.02.2011, 12:16 | 74 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 05.09.2022 18:18
Сообщений: 1090
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
А... это двойной клик, я думал быстрое и медленное нажатие.
На индикацию 0.2сек мало, посчитать не успеешь. От 0.5сек и с четкой двухкратной паузой перед первым миганием и после последнего. |
24.02.2011, 12:37 | 75 |
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 24.08.2019 11:36
Сообщений: 1362
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Почему же не успеешь? 5 миганий можно и в ОЗУ своей головы расположить, а посчитать уже потом . Это они мигать целую секунду (читай вечность) будут. Может с непривычки и будет быстро, но потом наоборот тормозом будешь обзывать. Вот я попробовал посчитать до пяти глядя на секундомер - пришлось делать не малые паузы, растягивая счёт чтоб вписаться ровно в одну секунду.
Режимы переключаются быстрыми кликами, а фиксировать кнопку на выбранном режиме или нет - зависит от того как быстро отпустишь... Если нажимаешь уже после того, как режим зафиксировался - при отпускании выключается незамедлительно, вне зависимости подержал ли ты кнопку 0,2с, или сразу отпустил (переходит в режим без фиксации)... P.S. Теперь подстроечник по-умолчанию задаёт временные интервалы кнопки, в диапазоне 98...623ms. Так что каждый может настроить под себя. Сейчас думаю как мне надёжно определять переход ползунка подстроечника через мёртвую зону в заданном направлении (по этому событию начинается настройка мощности на выбранном режиме)... |
04.03.2011, 15:39 | 76 |
Увлеченный
|
возможно ли перекомпилировать файл *.hex в *.asm ?
|
04.03.2011, 16:12 | 77 |
Завсегдатай Фонарёвки
|
Да. В авр студии: File - Open File Только потом спросит, куда сохранять проект, и на какой мк был скомпилен. После этого откроется дизассемблер. Не слишком красиво, но там уже будет ассемблерный код
|
04.03.2011, 16:16 | 78 |
Увлеченный
|
ага, я уже так пробовал, спрашивает Debug platform и заставляет выбрать один из нескольких программаторов, если выберешь любой и нажмёш Finish то студия потом матерится что указаный программатор не подключен.
AVR Studio 4 |
04.03.2011, 17:04 | 79 |
Завсегдатай Фонарёвки
|
AVR Simulator выбери
|
04.03.2011, 17:18 | 80 |
Увлеченный
|
выбрал, получилось
правда код ниразу не поймёш... |