Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Исходники программ и библиотек
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4
Waso
Предлагаю сюда скидывать (кому не жалко) свои инклюды для работы с периферийными устройствами, предназначенные для работы в IAR. Дело в том, что например для WinAVR такую библиотеку можно найти в сети. CodeVision имеет свою библиотеку. А ИАР этим не богат. Приходится либо писать свое с нуля, либо переделывать то что есть. Гемора в этих двух занятиях поровну.
Самому мне правда пока нечего выкинуь. Наоборот, нужны исходники для стандартного текстового ЖКИ-дисплея, клавиатуры 4х4, АЦП, ШИМ и пользовательского интерфейса. Так как с ИАРом (и вообще с Си) только знакомлюсь - дело идет медленно.
haker_fox
Может быть сюда вообще выкладывать различные подпрограммы, для работы не только с периферией, но и например математику, сортировку, обработку данных и т.п.

Для "затравки" хочу выложить свое скромное творчество:
CRC8.ZIP - модуль для подсчета CRC8 по табличному способу (накажут меня модераторы, я уже где-то этот модуль выкладывал).
MT_10T7.ZIP - модуль для работы с дисплеем MT-10T7 фирмы "МЭЛТ" (ЖКИ 10 семисегментных знакомест + контроллер управления).
RTC.ZIP - модуль программных часов, реализована проверка високосного года. Функция rtc_service() должна вызываться каждую секунду.



P.S. В этих библиотеках, как и в любой нормальной программе, есть баги, которые я еще не встречал, просто не было удобного случая smile.gif

Есть еще библиотека для работы с протоколом WAKE (http://www.spetspribor.com/support/software/wake/wake.html), если кого заинтересует, могу выложить.
at90
Вот библиотечка для работы с ЖКИ 16x2 и жк ht1611.
Взял здесь!
http://www.averos.narod.ru/products/8515.htm
at90
Библиотека для работы с датафлэшем at45
Nixon
В данном топике предлагается выкладывать различные исходные тексты программ и библиотек (как своих так и не очень smile.gif).
Приветствуется подробный стиль изложения сути предлагаемого (но только по теме twak.gif). Сами исходные тексты выкладывать лучше аттачем к сообщению или ссылкой на них. Короткие тексты (в пределах разумного) допускается публиковать прямо в теле сообщения.
Различный флейм и бессодержательные сообщения будут пресекаться на корню.

Удачи.
at90
Хороший проект с Атмеловского контеста. Вэб камера и AVR

http://www.circuitcellar.com/avr2004/wentries/A3694.zip
aai_m
Любопытное применение дисплея Siemens S65 с исходниками.

http://www.superkranz.de/christian/S65_Dis...aySoftware.html
Серега
Библиотека для 25lc640.
*SERG
много примеров и исходников
http://www.gaw.ru/html.cgi/txt/app/micros/avr/
haker_fox
Это архив студенческих проектов Американского университета с 1999 по 2004. Есть и радары (ИК, Ультразвук.), и GPS-приемники, и видео игры, и музыкальные синтезаторы.
http://instruct1.cit.cornell.edu/courses/e.../FinalProjects/

Тоже очень много исходников (около 300 по некоторым данным) + схемы:
http://www.avrfreaks.net
Alechin
Вот мои используемые практически в каждом проекте наработки:
1. Timer. Модуль таймеров. Использует таймер 3 (Мега128). Дискретность - 1 мсек. Предоставляет пользователю 8 таймеров, каждый из которых может быть однократным (отсчитал интервал и остановился) и циклическим (отсчитал, выставил флаг и перезапустился). По истечению каждого таймера может запускаться внешняя процедура.
2. AsyncTmr. Асинхронный таймер - использует таймер 0 в асинхронном режиме. Дискретность - 1 секунда. Функционально аналогичен предыдущему.
3. 3Wire. Драйвер шины 3-Wire (не путать с SPI!!!). Служит базой для построения драйверов устройств, подключаемых по 3-Wire (например, DS2404). Особенность - задержки подобраны под кварц 16 МГц.
4. MT12864. Драйвер графического дисплея MT12864 с набором шрифтов 6 на 8, 7 на 10 толстый и тонкий, 12 на 16 пикселов. Особенность - задержки подобраны под кварц 16 МГц.
5. PE12864. Драйвер графического дисплея PE12864 с набором шрифтов 6 на 8, 7 на 10 толстый и тонкий, 12 на 16 пикселов. Особенность - задержки подобраны под кварц 4 МГц.
DeXteR
Написал h файл для тех кто любит записи типа 0bxxxxxxxx в АСМ
Может комуто пригодица =)Нажмите для просмотра прикрепленного файла
Мах
Не столько библиотека как исходник для подключения памяти at24c256 через twi. Проверено на железе. У меня все прекрасно работает на atmega16. biggrin.gif
Исходник взят из инета.

http://nav2.livejournal.com/130205.html cool.gif
Balaganov
Цитата(Balaganov @ Jan 19 2006, 18:01) *
Хидер задержек для IAR. Использует __delay_cycles для формирования задержек от наносекунд до секунд. В параметре CPU_CLK_Hz указать тактовую частоту в герцах.Нажмите для просмотра прикрепленного файла


Сори не тот файл выложил, он в принципе рабочий, но до 2 с копейками МГц. Вот последний вариантНажмите для просмотра прикрепленного файла
Nikola Kirov
Калкулатор boudrate для Usarta.
Не нашел готовъи вариант и написал ета прога. Думаю кто то поможет.

p.s
Ест какои то проблем с закачки фаилов в форуме. exe,rar,zip не хочет принимат.
Ето rar которъй переименовал на txt. Поменяите рзширение.
afe
Както не хватает:

http://hubbard.engr.scu.edu/avr/avrlib/

[b]Procyon AVRlib Overview[/b]
General AVR Built-In Peripheral Drivers
  • Byte Buffering (circular)
  • Bit Buffering (linear)
  • Printf and other formatted print functions
  • VT100 Terminal Output
  • Command Line Interface
  • FAT16/32 File System (support is read-only for now)
  • STX/ETX Packet Protocol
  • Fixed-Point Math Library (basic operations only)
  • Timers (with PWM, interrupt management)
  • UART (interrupt driven)
  • A/D Converter
  • I2C Master/Slave (interrupt and non-intr)
  • SPI Interface
  • External Interrupts
External Hardware Device Drivers AVR Software-Emulated Devices
  • Character LCD Modules (HD44780-based)
  • I2C EEPROM Memories
  • SPI EEPROM Memories
  • MMC/SD Card Interface (SPI mode)
  • LIS3L02 ST Accelerometer
  • IDE/ATA Interface (for hard disks and CF cards)
  • Quadrature Encoders
  • RC-Servos (up to 8 channels)
  • STA013 MP3 Decoder Chip
  • GPS Receivers (via serial port)
    • NMEA-0813 Protocol
    • Trimble TSIP Protocol
  • Graphic LCD Modules
    • KS0108/HD61202 Controller
    • T6963 Controller
    • LCD Fonts and Symbols
  • I2c Master (Bit-Bang)
  • UART (software-based, timer interrupt driven)
  • Pulse Output (timer-based, variable frequency)
  • Intel-type Memory Bus (Address & Data Buses + nRD,nWR)
Network Support
  • Device Drivers
    • RTL8019 Ethernet
    • AX88796 Ethernet
    • CS8900 Ethernet
    • Prism2 Wireless LAN
  • Network Protocols
    • ARP
    • ICMP
    • IP
    • UDP
    • DHCP
  • Network Stack infrastructure
Proton
Преобразователь *.ebn в *.hex. Хоть таких файлов и не очень много(jtagice,stk500), может кому-нибудь пригодиться. Замечания и предложения слать в личку.
Нажмите для просмотра прикрепленного файла файл переименовать в EBN2HEX.rar
haker_fox
Прошу оценить мое сромное творчество, буду признателен, если сообщите о багах...

P.S.
i2c_soft_and_hardware.zip - там лежит драйвер как для TWI, так и программная реализация I2C, могут работать одновременно... что и реализовано в моем проекте.
ЛЕСЯ
haker_fox Как насчет выложить библтотеку для работы с протоколом WAKE?
Цитата
Есть еще библиотека для работы с протоколом WAKE (http://www.spetspribor.com/support/software/wake/wake.html), если кого заинтересует, могу выложить.
Цитата
Есть еще библиотека для работы с протоколом WAKE (http://www.spetspribor.com/support/software/wake/wake.html), если кого заинтересует, могу выложить.
Evgeny_CD
Цитата(afe @ Jan 26 2006, 01:48) *
...Procyon AVRlib...
В тонкости не вдавался, но это сильно похоже на эту либу для LPC2xxx
http://hubbard.engr.scu.edu/embedded/arm/armlib/
haker_fox
Цитата(ЛЕСЯ @ Feb 6 2006, 19:37) *
haker_fox Как насчет выложить библтотеку для работы с протоколом WAKE?
Цитата
Есть еще библиотека для работы с протоколом WAKE (http://www.spetspribor.com/support/software/wake/wake.html), если кого заинтересует, могу выложить.
Цитата
Есть еще библиотека для работы с протоколом WAKE (http://www.spetspribor.com/support/software/wake/wake.html), если кого заинтересует, могу выложить.



Выкладываю... НО, там помимо самой реализации протокола, есть еще и команды, которые мой девайс выполняет по указанию компьютера, на них можно не обращать внимания. Вырезать не стал, дабы нечайно не попортить исходник. Сразу скажу, что в том виде, в котором модуль выложен, он работать не будет, т.к. часть программных счетчиков считается в другом модуле, где обрабатываются прерывания, да и ввел я их сам, для тайм-аутов... В общем исходники только для пояснения общей сути, за более подробным объяснением сюда http://www.spetspribor.com/support/software/wake/wake.html.
В крайнем случае, если что, можно в PM спросить.
alm_
Модуль для работы с текстовым дисплеем 16x2

При всей изученности (если не сказать избитости) темы хочу предложить свое решение. Его особенности:
- для использования в своем проекте достаточно переписать функции чтени/записи данных и чтения команд с контроллера индикатора
- перекодировка из кодовой таблицы 1251 происходит runtime, так что можно вводить текстовые строки в своей привычной кодировке
- предварительный буфер дисплея можно заполнять, используя форматированный вывод sprintf
- для записи обработанных данных в контроллер дисплея достаточно вызывать быструю подпрограмму только в одном месте (прерывании таймера с частотой около 34 Гц)
- не загружает параллельные задачи (например подсчёт входных импульсов)
alm_
Расчёт CRC16
- на С с оптимизацией по скорости (таблица 512 байт)
- на С с оптимизацией по длине
- на Pascal/Delphi
Jatagan
Вылаживаю подпрограмму (Div24.asm) для беззнакового делени 24-х битного числа.
Используется хороший алгоритм, работает быстро. Коечто можно упростить.
SasaVitebsk
В одном из моих проектов было много устройств I2C и I2C - подобных (АЦП, ЦАП, 24сХХ и тд). Необходима была также клавиатура и дисплей. А ножек контроллера катострофически не хватало.
Короче я разработал на at90s2313 устройство I2C Дисплей-клавиатура-динамик-светодиоды. Изделие получилось на редкость удачное. И я его использовал неоднократно. Один экземпляр оставил себе. Использую для отладки.
Опишу преимущества:
1) Функционально законченный блок не требующий отладки. (У меня это плата на которой запаяны клавиатура, дисплей, схема управления, I2C память, выходной разъём)
2) Занимает малое число ног основного контроллера. Частично разгружает основной контроллер.
3) Можно выбрать кодовую таблицу символов (DOS/WIN). Таким образом программа основного микроконтроллера становится более наглядна.
4) Имеются команды управления дисплеем, - прямая адресация курсора; очистка дисплея; различные звуковые сигналы.
5) Низкая стоимость микросхем обвязки.
6) Обслуживание клавиатуры опросом и по прерыванию.
7) Простота реализации I2C интерфейса позволяет быстро включить данное устройство в свой проект.
Если есть интерес, то я могу опубликовать данный проект. smile.gif
Aquatik
SasaVitebsk опубликуй.. Очень хотелось бы посмотреть, для развития. Иногда возникала такая же ситуация с большим количеством i2c, решалось схемным путем... Заранее благодарен..
SasaVitebsk
Заранее извиняюсь. Всё это начиналось давно. Только появились 2313. smile.gif Схема у меня не сохранилась восстановил по памяти и программе. Проект был на avr studio 3. smile.gif

Короче перекомпильнул поновый. Может огрехи какие спрашивайте.

По схеме заметки.
1) От резета BOD. Я его не рисовал. Если возьмёте tiny2313, то он вааще не нужен.
2) Элемента "клава" я не нашёл, - поставил разъём на схеме. Клава стандартная 4х4. 4 верхних на перебор, 4 нижних на опрос.
3) Регистр типа ИР33,37 или ИР22,23.
4) Я ставил кварц 11059, хотя можно и 10М
5) Обычная ЗП-эшка
6) Озу 24сХХ стоят для примера. На плате были, хотя и не всегда запаивались
7) Индикатор любой на 44780

Существует более поздний вариант на mega8. Он без доп элементов.

Чуть позже скину прогу для PC для тестирования

Чёто не влезло. Высылаю остальное
vesago
SasaVitebsk будь так любезен - выложи схемку в пдф или картинкой.
SasaVitebsk
Схема была в EAGLE для быстроты. Мелочи не рисовал, - они понятны. Если не понятны можете писать на мыло sasa@c32dvina.com или завести топик в основном разделе, чтобы этот не загромождать. Да ещё пару моментов. Чтобы testi2c работала необходимо для xp поместить файл smport.sys в system32, для 95/98 smport.vxd в system. smile.gif Сразу подзабыл, - добавил.
Выбрать в проекте LPT1 и запаять SDA - 37a.0, 379.7; SCL - 37a.1
GOP
Еще библиотека для разработчика есть практически все.

http://hubbard.engr.scu.edu/embedded/avr/avrlib/

Всем удачи!!!
SasaVitebsk
По просьбам трудящихся выкладываю дополнительно по теме пульт i2c:

1) Схема присоединения к LPT порту PC
2) Библиотека для использования для AVR и 8051

Библиотеки правда не очень. smile.gif Я обычно в проект вкладываю. Теперь выдирать пришлось. Возможно чего-нибудь покалечил. smile.gif Но вроде там всё просто сами доработаете. Или на мыло пишите. smile.gif
prottoss
Выкладываю драйвер USARTа на Си, использующий кольцевые FIFO буферы. В принципе ничего нового, подобное где то есть, может даже в аппликухах Atmel, и я не претендую на изобретение чего то нового. Но может кому пригодится. Много удобных #define)))
defunct
Программный full-duplex UART для ATtiny13. С внутренним осциллятором 9.6Mhz обеспечивает работу UART'a на скоростях 9600/19200/38400. Имеется возможность раздельной инверсии линий Tx и Rx, что позволяет откзаться от применения преобразователей уровней RS-TTL. Присоединенный проект демонстрирует эхотерминал на скорости 38400, подключение к COM порту показано на прикрепленном рисунке.
prottoss
Привет всем!



Стартовый исходник для символьных ЖКИ на основе HD44780. С помощью многочисленных #define перестраивается под любой мыслимый дисплей на основе HD44780 (только с одним чипом!, т.е кроме индикаторов 4х40). В исходнике только примитивы - отправить команду, прочитать статус, отправить данные, прочитать данные. Вполне достаточно, что бы приступить к плодотворной работе с дисплеем без экспериментов. Поддерживает 4-х и 8-и битную шину данных... Сварено на IAR C for AVR 4.10B. Как всегда, мои подробнейшие комментарии)))
aleksey_g
Цитата(prottoss @ May 30 2006, 17:15) *
Привет всем!
Стартовый исходник для символьных ЖКИ на основе HD44780.


Красиво! Молодец. Хорошо постарался!
Но рассчитывать задержки вручную?
Не лучше ли так:
#define XTALL 16.0
#define delay_us(us) __delay_cycles (XTALL * us);
#define delay_ms(ms) delay_us (1000 * ms)
По моему было бы еще удобнее.
prottoss
Цитата(aleksey_g @ May 30 2006, 23:37) *
Цитата(prottoss @ May 30 2006, 17:15) *

Привет всем!
Стартовый исходник для символьных ЖКИ на основе HD44780.


Красиво! Молодец. Хорошо постарался!


Спасибо...)

Цитата(aleksey_g @ May 30 2006, 23:37) *
Но рассчитывать задержки вручную?
Не лучше ли так:
#define XTALL 16.0
#define delay_us(us) __delay_cycles (XTALL * us);
#define delay_ms(ms) delay_us (1000 * ms)
По моему было бы еще удобнее.


Может быть так и лучше)
agnedbay
Вот поляк выложил аппаратный TWI для управления LCD (CVAVR)
http://lcd.strony.pl/d-104v1.htm
Проверял нужные для меня (делал 2 i2c аппаратный и программный) куски кода все работает.
А вот взагали http://lcd.strony.pl/ что есть.
Хоть и по польски, но понятно.
Stas633
Не смог найти готового, поэтому сделал свое....

Бегущая строка для HD44780 на Си. Выполнено в CV_AVR...

Файл в формате .html, так как пояснений больше чем собственно кода...

Нажмите для просмотра прикрепленного файла
TamTam
Библиотека и модель в PROTEUSE 6.9. sp4 для подключения HD44780 всего по 3 проводам с использованием сдвигового регистра 74HC164 МК. Компилятор CodeVisionAVR
Отбельная благодарность за помощь в понимание и написание программы:
1. rat - описание работы с HD44780
2. otrog - правка кода и правильный загон строк в регистр
SasaVitebsk
Цитата(Wladimir_TS @ Aug 26 2006, 10:58) *
Не уверен уместно-ли здесь просить какие - либо исходники, но я попробую:

Необходима процедура вычисления логарифма с произвольным целым рснованием в диапазоне 2-10. Режим вычислений - с фиксированной точкой. требование - минимальный занимаемый объем.

Ну очень надо - может кто ссылки где видел. help.gif


Нашёл у себя математику для 8051. Но переписать несложно.
andr_doy
RkLibAvr
Польская библиотека
http://robkry.freepgs.com/?q=node/4
SasaVitebsk
Например при обработке сложного последовательного протокола происходит "прокол". Как его найти? У меня есть стенд(а если не подходит стандартный, то делаю новый). И я с МК сливаю данные на PC до 8 битов (например 2 последовательных канала приём/передача). Обычно мл.битом вперёд хотя прога может и повернуть. Итак я записываю данные в файл например 100Mb.

А дальше спокойно просматриваю что происходит и где прокол. Можно искать нужные места. Ставить метки. Измерять длительность участка. Копировать и сравнивать. Можно запоминать адрес в файле (смещение от начала файла). Мне это помогало, когда данные скрэмблированные. Можно просматривать файл до и после обработки. Можно подписывать лучи и сохранять карточку. И хранить такой протокол. Чтобы в любой момент его просмотреть. Помойму где-то у меня лежит карточка телефонного автомата. smile.gif А где-то и 2323 лежит которая легко с ним общается. smile.gif

Использовал и для аналоговых данных. Хоть и не для этого делалось.
Георгий
To SasaVitebsk:
Я все таки не отказался бы от исходников пргии со стороны РС, времени нет просто сейчас разбираться. На оформление и прочие возможные огрехи закрою глаза, прекрасно понимаю, что такое тестовая программа , быстро накиданная под себя.
Можно в мыло gsb@gsb.kirov.ru

Осциллограф цифровой на компе я тоже писал, удобная штука. Я с его помощью разобрал протоколы обмена с клавиатурой, IR протоколы.
SasaVitebsk
Цитата(vesago @ Sep 28 2006, 12:11) *
To SasaVitebsk:
Я так понял ваша программа пишет данные по битам 0 - 7 LPT порта. А драйвер какой надо для XP?


Драйвера то есть. Но на счёт пишет я другой пользуюсь. Обычно. Там описание есть маленькое. smile.gif Драйвера я в пульте выкладывал. smport.vxd, smport.sys
kamedi_clab
Шаблон для быстрого программирования в CVAVR и отладки в VMLAB

В шаблоне содержится папка с проектми для компилятора CVAVR и симулятора VMLAB. Можно сразу запустить симуляцию в VMLAB программы выводящей сообщения на ПК и мигающей светодиодами.
Можно изменить программу под ваши нужды в компиляторе CVAVR - при этом удобно использовать генератор кода компилятора. После отладки окончательного варианта программы в симуляторе вы можете прошить МК прямо из компилятора CVAVR. Во время работы удобно одновременно запустить и CVAVR и VMLAB.
VitPushchin
А вот приемник ИК пульта от Самсунга (кодировка типа NEC, но со своими особенностями).
Работает на АТтини2313, у меня - 11.059 мгц кварц. Собственно, по сорсам все понятно должно быть.
SasaVitebsk
Свой вариант библиотек LCD44780 и DS1820.

Очень понравился по стилю написания вариант работы с HD44780 от protoss, но как мне кажется он не полный. Выкладываю свой. Думаю уважаемый protoss им не воспользуется, а вот начинающие - возможно. Также вариант библиотеки для работы с DS18x20.

Возможности LCD44780. Есть вторичный вывод. Вывод символа в Win кодировке, прямая адресация курсора, сплитер и др. Поддерживаются стандартные п/п printf и outs вместе с форматированием. Форматирование расширено что позваляет легко делать меню.

Возможности DS18x20. Позволяет подключать несколько датчиков DS1820/18b20/18s20 в любом сочетании. Позволяет динамически определять их колличество и подключать новые. Позволяет работать с ними по 2-ух проводной шине.
Screw
Здравствуйте!

Я вот тут решил зарегистрироваться и кое чем поделиться, ибо искал это кое что.... долго wink.gif

А именно - исходник инициализации и работы с LCD МТ-16s2 фирмы МЭЛТ по 4-х проводному интерфейсу. Написано под WinAvr, но я за 5 минут переделал под CVAVR.
Выкладываю оригинал (надеюсь автор не будет против).

Вся бякость этого LCD состоит в том, что он не совсем аналог HD44780 wink.gif
yarunt
Если кому интересно ,как я поборол жки нокиа3510и.
kuber
Проект на Pic
MASTER-Pic16f628
Slave - Pic12f629

Monitor 2 Wire 7Adr Led

Устройство состоит из блока графической индикации 5х8 точек с формирователем 2 проводной линии связи с адресными устройствами.
Питание адресников осуществляется по тойже линии связи.
Каждый адресник имеет 2 входа замыкаемые на массу.
Блок индикации обслуживает 8 адресных устройств.
Индикация, наличие адресного устройство на линии, и о замыкании у адресного устройства входных линий на землю.
Адресники могут содержать фиксированный адрес 0-7,
или вариант адресника с 3 перемычками задающий адрес устройства.
Блок индикации является MASTEROM на линиа а адресники SLAVE.
Начало обмена- команда сброс для всех адресников, далее пакет из 4 байт.
1 -адрес устройства
2 -код команды (чтение или запись из адресника)
3 -байт данттых
4 -CRC8 контрольная сумма.


Мастер посылает пакет адреснику и читает ответ с линии и проверяя CRC пакета, если CRC не совпадает, MASTER повторяет посылку ещё 2 раза.
Если, нет то считается что адресника нет.


Весь проект с схемами, фотками и файлами -ASM,HEX

Мажет пригодится кому нибудь.
aralgen@mail.ru
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.