индикатор уровня заряда Li-Ion 3.7В на ATTiny13

Тема в разделе 'Батарейки, аккумуляторы и зарядные устройства', создана пользователем Acinonyx, 18 май 2010.

  1. axis

    axis Модератор Staff Member

    А вообще, http://chernykh.net/ очень интересный ресурс для начала.
     
  2. suslox

    suslox Пушистикс Staff Member

    ;) я недавно его изучал...пишут на нем полно до сих пор :p
     
  3. axis

    axis Модератор Staff Member

    Суслик, то что ты будешь писать допустим под винды год- я напишу за неделю, и моя программа будет более стабильна в виндах чем твоя.
    Цитата:
    Создание драйверов. Некоторые участки драйверов, взаимодействующие с аппаратным обеспечением, программируют на языке ассемблера. Хотя в целом в настоящее время драйверы стараются писать на языках высокого уровня в связи с повышенными требованиями к надёжности. Надёжность для драйверов играет особую роль, поскольку в Windows NT и Linux драйверы работают в режиме ядра. Одна ошибка может привести к краху системы.
    Источник:
    http://ru.wikipedia.org/wiki/%D0%AF%D0% ... 1%80%D0%B0
     
  4. suslox

    suslox Пушистикс Staff Member

    я про мк и дсп, а не про винду...
     
  5. INFERION

    INFERION Пользователь

    Мне просто SviMik показал пример простенькой программы и разжевал по винтикам. Потом я взялся писать простую, как мне казалось, программу для системы зажигания. Ну и попутно неделю ещё доставал его всякими прерываниями, таймерами, спящими режимами, математикой (и через програмное умножение пройти пришлось). Потихоньку начал вникать и программа начала разрастаться. Под рукой ещё был даташит на МК и страничка с описанием команд: http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/start.htm. С даташита распечатал страницу "Register Summary", здорово выручает при конфигурации железа в МК.

    Вот и вся история :). Ассемблер впринципе имеет много общего с обычной логикой. Тут берутся два слова, делается с ними какоето логическое или арефмитическое действие, и выплёвуется ответ. Затем его можно проанализировать и сделать или то, или то, в зависимости от результата. Вот собственно и все что там встречается...
    У каждой команды есть своя формула и область действия. Например команды, работающие с константами, не могут работать с регистрами R0...R15. А команды работающие с ОЗУ (LD) могут возится и на территории регистров. Конфигурационные регистры считаются тоже регистрами ввода/вывода, и обращатся к ним нужно как к портам. Вот только у некоторых команд (например SBI и CBI) ограничена облать адресов (до 0x31 вроде) и дотянутся до конфигурации внешних прерываний и прерываний таймеров ими я не смог :(. Пришлось лепить огороды с логическими операциями... Всё это вычитывается на той страничке с командами, разобратся там реально...
    А, да, ещё я попробовал осилить писанину на радиокоте: http://radiokot.ru/start/mcu_fpga/avr, но мигалки мне собирать не интересно...
     
  6. Acinonyx

    Acinonyx Пользователь

    о, спасибо
    очень не хотелось начинать изучать Си (хотя со временем придется учить и Си)
    начну учить асм (а вот навыки асма всегда пригодятся)

    кстати, в какой среде удобней всего писать асмом для авр?
    кроме винавра ничего на ум не приходит, но он туповат как валенок, мейкфалы еще рисовать надо
     
  7. INFERION

    INFERION Пользователь

    Я в AVR Studio в симуляторе гоняю. Там же это всё и редактируется, и компилится, и подсветка синтаксисов и т.п. Но я редактирую всёравно в блокноте :). Мне там удобнее, а студия потом замечает изменения и предлагает обновить своё содержимое...
    Только вот какие-то глюки с флагами прерываний таймеров. То-ли симулятор глючит, то-ли я чего-то не понимаю...
    Валяется ещё ASM Editor (в литературе хвалили, вот и скачал), но я не понимаю чем все эти проги лучше блокнота...
     
  8. Acinonyx

    Acinonyx Пользователь

    с нуля переписал прошивку, немного изменил алгоритм работы, исправил ошибки (а именно с конфигурацией DDRB и PORTB, когда после сброса светодиодов в режиме обычного отображения сбрасывался и сигнал EN для драйвера)
    влезли все светодиоды
    программа все также раз в 5 секунд проверяет АЦП, при критических значениях входит в бесконечный цикл с миганием красным светодиодом
    если значение не критическое то по принципу "больше стольки и меньше столки и кнопка нажата" светит нужным количеством светодиодов
     
  9. suslox

    suslox Пушистикс Staff Member

    нас в инсте тоже на авр студио обучали)и еще на отладочных платах от атмела
     

Поделиться этой страницей