ATtiny13a и PB5

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Столкнулся с небольшой проблемой при програмировании ATtiny13a. 

Хочу сделать индикатор заряда батареи в фонарике. А точнее, нужно считать напряжение, и отобразить его на 5 светодиодах, соответственно 20%, 40%, 60%, 80%, 100% заряда!!! 

Пока возможно считать напряжение через PB0, и отобразить при помощи PB1, PB2, PB3, PB4 -- а как указать PB5 - выходом , затрудняюсь. 

Есть возможность при помощи калькулятора фюзов прошить (отключить RESET поставив галочку напротив "RSTDISBL") но не знаю, повлияет ли это на загрузку скетчей, после прошивки бутлоадера ...

Жду ваших советов.

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Ответ очевиден,

1) Сделать вывод на 25%, 50%, 75% и 100%.

2) Сделать на Atmega 8A-PU.

3) Сделать "хитрую индикацию" вот как тут http://arduino.ru/forum/proekty/attiny85-12-led-vu-meter#comment-27188

Спасибо МАКСИМУ за совет:

"Если вы отключите ресет, больше не сможете прошивать тиню по SPI, ее можно будет прошить/стереть только параалельным-высоковольтным программатором поэтому лучше не трогайте этот фьюз."

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Тот код куда ведёт силка не работает, но мультиплексирование «методом Чарли» интересная штука, теперь понял что такое Z состояние. Вот только немогу понять как на ардуино реализовать...

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

ссылка работает 100%...

Делаю все на Atmega8A-PU

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

силка то рабочая, вот код который по ней нет... если постараться то заработает, на данный момент моя компетенция не позволяет решить проблему...

madalexfiesta
madalexfiesta аватар
Offline
Зарегистрирован: 30.03.2016

Эм, какой командой всё-таки в скетче отключить reset? Возможно ли с помощью ардуинки? В даташите читал читал, но как-то не понял совсем)

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Никакой. Reset отключается фьюзами с помощью программатора или другой ардуины со скетчем ArduinoISP. Конкретно - фьюз RSTDISBL. Но после этого вы не сможете загружать скетчи.

madalexfiesta
madalexfiesta аватар
Offline
Зарегистрирован: 30.03.2016

Правильный ответ на мой вопрос(уже сам нашел)

http://arduino.ru/forum/programmirovanie/fuse-bity

Ресет устанавливается записью attiny13.bootloader.high_fuses=0xFE в папке ARDUINO\hardware\attiny13\avr в файле boards.txt

Далее компилируем скетч и прошиваем через программатор

axill
Offline
Зарегистрирован: 05.09.2011

inhelp пишет:

Спасибо МАКСИМУ за совет:

"Если вы отключите ресет, больше не сможете прошивать тиню по SPI, ее можно будет прошить/стереть только параалельным-высоковольтным программатором поэтому лучше не трогайте этот фьюз."

Только не паралелльным, а последовательным, зовется HVSP - high voltage serial programmer

У тини13 ног мало для паралельного програматора как и почти у всех остальных тинек

HVPP есть только там где ног много

увы и то и то редкость, оригинал стоит дорого. У меня оно есть на STK600

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

madalexfiesta пишет:

Правильный ответ на мой вопрос(уже сам нашел)

...

Далее компилируем скетч и прошиваем через программатор

Не совсем правильный. Чтобы изменить фьюзы из среды Arduino IDE компилировать и прошивать скетч не нужно. Вместо этого нужно прошить уже готовый загрузчик (Сервис - Записать загрузчик). Вот только после этого вы уже не сможете прошить скетч, т.к. ресет будет отключён...

А можно фьюзы изменять вообще без загрузчика и Arduino IDE - через консольную программу avrdude. Или через многочисленные графические оболочки к этой консольной программе - SinaProg, AvrdudeProg и другие. Через них фьюзы можно менять уже после прошивки скетча.