Свежие обсуждения
Микроконтроллеры

Начинаю изучать AVR. К кому из участников форума можно обратиться с "глупыми вопросами"?

1 3 5

AVR пики в 4 раза по производительности не делает. То есть делает, но не в 4 раза. Напомню, у новых AVR тактовая 20МГц при 1MIPS/1MHz, а у PIC тактовая 40МГц при 0.25MIPS/1MHz.

Кроме этого есть различие и в количестве циклов выполнения команд. Например, вызов подпрограммы
AVR RCALL/RET – 7циклов,
PIC CALL/RETURN 4 цикла.
ИМХО, для любительских конструкций особой разнице между этими контроллерами нет.

 

У АВР практически все команды работают со всеми регистрами у ПИКов- возня вокруг рабочего.У АВР команда выполняется са такт у ПИК -за 4.
Еще раз рекомендую обратить внимание на Алгоритм Билдер - графический Ассемблер
http://algrom.net/russian.html

 

Здравствуйте, я тоже немного начал программировать под AVR и у меня могут возникнуть вопросы... Столкнулся с проблемой нехватки ОП (совсем немного не хватает), если можно, то дайте пару ссылок на методы сжатия (качество: быстро, коэффициент не большой, на лету). Заранее благодарен.

 

Dendromutant, проблему надо бы поподробней описать. Например, какого рода данные предполагается сжимать. Потому как выбор алгоритма зависит именно от структуры информации. НЕ СУЩЕСТВУЕТ алгорима, гарантирующего сжатие произвольно взятого набора байт хотя бы на 1 бит (при условии что сжатие без потерь). Доказательство этого утверждения должно быть достаточно очевидно

Если тупо ответить на вопрос -- самый простой и быстрый алгоритм сжатия называется RLE (Run-Length Encoding), его описание без проблем найдется в Google. Эффективен только если присутствуют цепочки повторяющихся байт.

Вообще проблема нехватки оперативной памяти лечится подключением внешнего ОЗУ размером до 64КБайт (хотя не все AVR эту возможность поддерживают). Или выбором микроконтроллера с большим объемом встроенного ОЗУ.

 

Для тех, кто так же, как я начал изучать AVR и ищет информацию. Действительно найти ее очень трудно. Для меня особенно, там где я живу литературы почти нет, особенно русскоязычной, а Интернет обходится слишком дорого (через мобильник). На этой конференции, кажется, я встретил тех, кто мне отвечал на подобные вопросы, првда адресса другие, может я ошибаюсь. В любом случае, спасибо всем окликнувшимся. Так вот, поделюсь тем, что удалось достать самому: Голубцов М.С, Кириченкова А.В. "Микроконтроллеры AVR: от простого к сложному" ( С CD примерами, описаниями, документацией). Там же есть полный Help на русском языке к Algoritm builder (В составе самой программы, у меня он был неполный), очень рекомендую для начинания изучения программирования в кодах. Си изучал с Turbo C. Описание : Турбо Си - руководство пользователя, Описание Си Кернигана и Ричи, но в этой книге есть проблемы с синтаксисом. Например, листинги приведены в верхнем регистре. Не сразу понял, почему у меня первая программа "Hello world" не работает. Но описание операторов не помешает. Программы: Algoritm builder , AVR Studio3.55, Эмулятор VMLAB, Си компилятор CVAVR , Си компилятор ICC AVR фирмы - Imagecraft. Сайты, они уже здесь упоминались, повторю, т. к. действительно полезные. http://avr123.by.ru/, http://avr.nikolaew.org. Если кто пополнит этот список, думаю будут благодарны все новички в этой области и я в том числе. Если кому-то нужны прошивки для телевизоров или раскодировки автомагнитол - можете свободно скачать с моего сайта www.choroh.narod.ru. Правда, он давно не обновлялся, я уже в этой области не работаю. ВСЕМ УДАЧИ!

 

Я нашёл много информации (по крайней мере по ссылкам) на сйтах на народе, но, увы, он блокирован на работе. Чувствую, придётся дома компьютер ставить. Или на работе модем. Битва с сетевиками в области открытия доступа пока результатов не принесла . Что-то связанное с корпоративной безопасностью....

 

На двух графиках имеются значения напряжения и тока. Они сняты с инюуктивных элементов, с периодичностью - 10 замеров в 1/50 сек (напряжение - 50 Гц). на U и + 10 замеров на I. На значение напряжения и тока отводится байт. Хотелось бы, чтобы это почти ничего не занимало, а на алгоритм сжатия не более 500 команд асемблера.

 

>чтобы это почти ничего не занимало, а на алгоритм сжатия не более 500 команд асемблера

- "И то и другое - и можно без хлеба!"

Судя по осциллограммам, надо ориентироваться на алгоритмы сжатия звука без потерь. Они бывают построены на том принципе, что приращение сигнала между соседними отсчетами чаще всего намного меньше максимально возможного размаха. Один из вариантов - т.н. коды Райса, простейшую реализацию вероятно можно уложить в 500 команд AVR. Внятное ("на пальцах") описание алгоритма можно почитать тут http://www.firstpr.com.au/audiocomp/lossless/ (ближе к концу страницы). Ожидать чудес не стоит, простой алгоритм большого коэфф. сжатия не даст (раза в 1.5 ... 2 м.б. пожмет)

PS. Эта тема, кстати, ни малейшего отношения к начинанию программирования AVR не имеет ;)

 

Отрыл в своем архиве маленькую программку, работающую по похожему принципу (писалась в свое время ради эксперимента), как раз с 8-битными данными (беззнаковыми). Алгоритм максимально упрощенный. В лучшем случае дает сжатие в 1.6 раза, в худшем -- "распухание" в 1.875 раза. Для данных типа тех что на картинке, сжатие практически гарантировано.

16911.txt

 

Примного благодарен, осталось в асемблер перевести и протестить.