Предлагаю сюда скидывать (кому не жалко) свои инклюды для работы с периферийными устройствами, предназначенные для работы в IAR. Дело в том, что например для WinAVR такую библиотеку можно найти в
сети. CodeVision имеет свою библиотеку. А ИАР этим не богат. Приходится либо писать свое с нуля, либо переделывать то что есть. Гемора в этих двух занятиях поровну.
Самому мне правда пока нечего выкинуь.
Наоборот, нужны исходники для стандартного текстового ЖКИ-дисплея, клавиатуры 4х4, АЦП, ШИМ и пользовательского интерфейса. Так как с ИАРом (и вообще с Си) только знакомлюсь - дело идет медленно.
haker_fox
Dec 20 2005, 01:03
Может быть сюда вообще выкладывать различные подпрограммы, для работы не только с периферией, но и например математику, сортировку, обработку данных и т.п.
Для "затравки" хочу выложить свое скромное творчество:
CRC8.ZIP - модуль для подсчета CRC8 по табличному способу (накажут меня модераторы, я уже где-то этот модуль выкладывал).
MT_10T7.ZIP - модуль для работы с дисплеем MT-10T7 фирмы "МЭЛТ" (ЖКИ 10 семисегментных знакомест + контроллер управления).
RTC.ZIP - модуль программных часов, реализована проверка високосного года. Функция rtc_service() должна вызываться каждую секунду.
P.S. В этих библиотеках, как и в любой нормальной программе, есть баги, которые я еще не встречал, просто не было удобного случая

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

).
Приветствуется подробный стиль изложения сути предлагаемого (но только по теме

). Сами исходные тексты выкладывать лучше аттачем к сообщению или ссылкой на них. Короткие тексты (в пределах разумного) допускается публиковать прямо в теле сообщения.
Различный флейм и бессодержательные сообщения будут пресекаться на корню.
Удачи.
Хороший проект с Атмеловского контеста. Вэб камера и AVR
http://www.circuitcellar.com/avr2004/wentries/A3694.zip
Серега
Dec 24 2005, 20:31
Библиотека для 25lc640.
haker_fox
Dec 27 2005, 00:49
Это архив студенческих проектов Американского университета с 1999 по 2004. Есть и радары (ИК, Ультразвук.), и GPS-приемники, и видео игры, и музыкальные синтезаторы.
http://instruct1.cit.cornell.edu/courses/e.../FinalProjects/Тоже очень много исходников (около 300 по некоторым данным) + схемы:
http://www.avrfreaks.net
Alechin
Jan 11 2006, 15:22
Вот мои используемые практически в каждом проекте наработки:
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
Jan 18 2006, 13:24
Написал h файл для тех кто любит записи типа 0bxxxxxxxx в АСМ
Может комуто пригодица =)
Нажмите для просмотра прикрепленного файла
Не столько библиотека как исходник для подключения памяти at24c256 через twi. Проверено на железе. У меня все прекрасно работает на atmega16.
Исходник взят из инета.
http://nav2.livejournal.com/130205.html
Balaganov
Jan 23 2006, 17:49
Цитата(Balaganov @ Jan 19 2006, 18:01)

Хидер задержек для IAR. Использует __delay_cycles для формирования задержек от наносекунд до секунд. В параметре CPU_CLK_Hz указать тактовую частоту в герцах.
Нажмите для просмотра прикрепленного файлаСори не тот файл выложил, он в принципе рабочий, но до 2 с копейками МГц. Вот последний вариант
Нажмите для просмотра прикрепленного файла
Nikola Kirov
Jan 25 2006, 00:57
Калкулатор boudrate для Usarta.
Не нашел готовъи вариант и написал ета прога. Думаю кто то поможет.
p.s
Ест какои то проблем с закачки фаилов в форуме. exe,rar,zip не хочет принимат.
Ето rar которъй переименовал на txt. Поменяите рзширение.
Както не хватает:
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
- Network Stack infrastructure
Proton
Jan 29 2006, 17:50
Преобразователь *.ebn в *.hex. Хоть таких файлов и не очень много(jtagice,stk500), может кому-нибудь пригодиться. Замечания и предложения слать в личку.
Нажмите для просмотра прикрепленного файла файл переименовать в EBN2HEX.rar
haker_fox
Feb 3 2006, 09:36
Прошу оценить мое сромное творчество, буду признателен, если сообщите о багах...
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
Feb 6 2006, 17:41
Цитата(afe @ Jan 26 2006, 01:48)

...Procyon AVRlib...
В тонкости не вдавался, но это сильно похоже на эту либу для LPC2xxx
http://hubbard.engr.scu.edu/embedded/arm/armlib/
haker_fox
Feb 7 2006, 00:19
Цитата(ЛЕСЯ @ 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 спросить.
Модуль для работы с текстовым дисплеем 16x2
При всей изученности (если не сказать избитости) темы хочу предложить свое решение. Его особенности:
- для использования в своем проекте достаточно переписать функции чтени/записи данных и чтения команд с контроллера индикатора
- перекодировка из кодовой таблицы 1251 происходит runtime, так что можно вводить текстовые строки в своей привычной кодировке
- предварительный буфер дисплея можно заполнять, используя форматированный вывод sprintf
- для записи обработанных данных в контроллер дисплея достаточно вызывать быструю подпрограмму только в одном месте (прерывании таймера с частотой около 34 Гц)
- не загружает параллельные задачи (например подсчёт входных импульсов)
Расчёт CRC16
- на С с оптимизацией по скорости (таблица 512 байт)
- на С с оптимизацией по длине
- на Pascal/Delphi
Jatagan
Mar 7 2006, 08:25
Вылаживаю подпрограмму (Div24.asm) для беззнакового делени 24-х битного числа.
Используется хороший алгоритм, работает быстро. Коечто можно упростить.
SasaVitebsk
Apr 2 2006, 10:27
В одном из моих проектов было много устройств I2C и I2C - подобных (АЦП, ЦАП, 24сХХ и тд). Необходима была также клавиатура и дисплей. А ножек контроллера катострофически не хватало.
Короче я разработал на at90s2313 устройство I2C Дисплей-клавиатура-динамик-светодиоды. Изделие получилось на редкость удачное. И я его использовал неоднократно. Один экземпляр оставил себе. Использую для отладки.
Опишу преимущества:
1) Функционально законченный блок не требующий отладки. (У меня это плата на которой запаяны клавиатура, дисплей, схема управления, I2C память, выходной разъём)
2) Занимает малое число ног основного контроллера. Частично разгружает основной контроллер.
3) Можно выбрать кодовую таблицу символов (DOS/WIN). Таким образом программа основного микроконтроллера становится более наглядна.
4) Имеются команды управления дисплеем, - прямая адресация курсора; очистка дисплея; различные звуковые сигналы.
5) Низкая стоимость микросхем обвязки.
6) Обслуживание клавиатуры опросом и по прерыванию.
7) Простота реализации I2C интерфейса позволяет быстро включить данное устройство в свой проект.
Если есть интерес, то я могу опубликовать данный проект.
Aquatik
Apr 3 2006, 06:45
SasaVitebsk опубликуй.. Очень хотелось бы посмотреть, для развития. Иногда возникала такая же ситуация с большим количеством i2c, решалось схемным путем... Заранее благодарен..
SasaVitebsk
Apr 3 2006, 21:41
Заранее извиняюсь. Всё это начиналось давно. Только появились 2313.

Схема у меня не сохранилась восстановил по памяти и программе. Проект был на avr studio 3.

Короче перекомпильнул поновый. Может огрехи какие спрашивайте.
По схеме заметки.
1) От резета BOD. Я его не рисовал. Если возьмёте tiny2313, то он вааще не нужен.
2) Элемента "клава" я не нашёл, - поставил разъём на схеме. Клава стандартная 4х4. 4 верхних на перебор, 4 нижних на опрос.
3) Регистр типа ИР33,37 или ИР22,23.
4) Я ставил кварц 11059, хотя можно и 10М
5) Обычная ЗП-эшка
6) Озу 24сХХ стоят для примера. На плате были, хотя и не всегда запаивались
7) Индикатор любой на 44780
Существует более поздний вариант на mega8. Он без доп элементов.
Чуть позже скину прогу для PC для тестирования
Чёто не влезло. Высылаю остальное
SasaVitebsk будь так любезен - выложи схемку в пдф или картинкой.
SasaVitebsk
Apr 6 2006, 20:14
Схема была в EAGLE для быстроты. Мелочи не рисовал, - они понятны. Если не понятны можете писать на мыло sasa@c32dvina.com или завести топик в основном разделе, чтобы этот не загромождать. Да ещё пару моментов. Чтобы testi2c работала необходимо для xp поместить файл smport.sys в system32, для 95/98 smport.vxd в system.

Сразу подзабыл, - добавил.
Выбрать в проекте LPT1 и запаять SDA - 37a.0, 379.7; SCL - 37a.1
Еще библиотека для разработчика есть практически все.
http://hubbard.engr.scu.edu/embedded/avr/avrlib/Всем удачи!!!
SasaVitebsk
Apr 20 2006, 20:36
По просьбам трудящихся выкладываю дополнительно по теме пульт i2c:
1) Схема присоединения к LPT порту PC
2) Библиотека для использования для AVR и 8051
Библиотеки правда не очень.

Я обычно в проект вкладываю. Теперь выдирать пришлось. Возможно чего-нибудь покалечил.

Но вроде там всё просто сами доработаете. Или на мыло пишите.
prottoss
May 22 2006, 14:46
Выкладываю драйвер USARTа на Си, использующий кольцевые FIFO буферы. В принципе ничего нового, подобное где то есть, может даже в аппликухах Atmel, и я не претендую на изобретение чего то нового. Но может кому пригодится. Много удобных #define)))
defunct
May 23 2006, 05:16
Программный full-duplex UART для ATtiny13. С внутренним осциллятором 9.6Mhz обеспечивает работу UART'a на скоростях 9600/19200/38400. Имеется возможность раздельной инверсии линий Tx и Rx, что позволяет откзаться от применения преобразователей уровней RS-TTL. Присоединенный проект демонстрирует эхотерминал на скорости 38400, подключение к COM порту показано на прикрепленном рисунке.
prottoss
May 30 2006, 14:15
Привет всем!
Стартовый исходник для символьных ЖКИ на основе HD44780. С помощью многочисленных #define перестраивается под любой мыслимый дисплей на основе HD44780 (только с одним чипом!, т.е кроме индикаторов 4х40). В исходнике только примитивы - отправить команду, прочитать статус, отправить данные, прочитать данные. Вполне достаточно, что бы приступить к плодотворной работе с дисплеем без экспериментов. Поддерживает 4-х и 8-и битную шину данных... Сварено на IAR C for AVR 4.10B. Как всегда, мои подробнейшие комментарии)))
aleksey_g
May 30 2006, 15:37
Цитата(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
May 30 2006, 15:50
Цитата(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
Jun 9 2006, 11:32
Вот поляк выложил аппаратный TWI для управления LCD (CVAVR)
http://lcd.strony.pl/d-104v1.htmПроверял нужные для меня (делал 2 i2c аппаратный и программный) куски кода все работает.
А вот взагали
http://lcd.strony.pl/ что есть.
Хоть и по польски, но понятно.
Stas633
Jul 1 2006, 07:47
Не смог найти готового, поэтому сделал свое....
Бегущая строка для HD44780 на Си. Выполнено в CV_AVR...
Файл в формате .html, так как пояснений больше чем собственно кода...
Нажмите для просмотра прикрепленного файла
Библиотека и модель в PROTEUSE 6.9. sp4 для подключения HD44780 всего по 3 проводам с использованием сдвигового регистра 74HC164 МК. Компилятор CodeVisionAVR
Отбельная благодарность за помощь в понимание и написание программы:
1. rat - описание работы с HD44780
2. otrog - правка кода и правильный загон строк в регистр
SasaVitebsk
Aug 31 2006, 18:41
Цитата(Wladimir_TS @ Aug 26 2006, 10:58)

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

Нашёл у себя математику для 8051. Но переписать несложно.
andr_doy
Sep 19 2006, 04:42
SasaVitebsk
Sep 28 2006, 00:35
Например при обработке сложного последовательного протокола происходит "прокол". Как его найти? У меня есть стенд(а если не подходит стандартный, то делаю новый). И я с МК сливаю данные на PC до 8 битов (например 2 последовательных канала приём/передача). Обычно мл.битом вперёд хотя прога может и повернуть. Итак я записываю данные в файл например 100Mb.
А дальше спокойно просматриваю что происходит и где прокол. Можно искать нужные места. Ставить метки. Измерять длительность участка. Копировать и сравнивать. Можно запоминать адрес в файле (смещение от начала файла). Мне это помогало, когда данные скрэмблированные. Можно просматривать файл до и после обработки. Можно подписывать лучи и сохранять карточку. И хранить такой протокол. Чтобы в любой момент его просмотреть. Помойму где-то у меня лежит карточка телефонного автомата.

А где-то и 2323 лежит которая легко с ним общается.

Использовал и для аналоговых данных. Хоть и не для этого делалось.
Георгий
Sep 28 2006, 04:31
To SasaVitebsk:
Я все таки не отказался бы от исходников пргии со стороны РС, времени нет просто сейчас разбираться. На оформление и прочие возможные огрехи закрою глаза, прекрасно понимаю, что такое тестовая программа , быстро накиданная под себя.
Можно в мыло gsb@gsb.kirov.ru
Осциллограф цифровой на компе я тоже писал, удобная штука. Я с его помощью разобрал протоколы обмена с клавиатурой, IR протоколы.
SasaVitebsk
Sep 28 2006, 19:41
Цитата(vesago @ Sep 28 2006, 12:11)

To SasaVitebsk:
Я так понял ваша программа пишет данные по битам 0 - 7 LPT порта. А драйвер какой надо для XP?
Драйвера то есть. Но на счёт пишет я другой пользуюсь. Обычно. Там описание есть маленькое.

Драйвера я в пульте выкладывал. smport.vxd, smport.sys
kamedi_clab
Oct 8 2006, 17:01
Шаблон для быстрого программирования в CVAVR и отладки в VMLAB
В шаблоне содержится папка с проектми для компилятора CVAVR и симулятора VMLAB. Можно сразу запустить симуляцию в VMLAB программы выводящей сообщения на ПК и мигающей светодиодами.
Можно изменить программу под ваши нужды в компиляторе CVAVR - при этом удобно использовать генератор кода компилятора. После отладки окончательного варианта программы в симуляторе вы можете прошить МК прямо из компилятора CVAVR. Во время работы удобно одновременно запустить и CVAVR и VMLAB.
VitPushchin
Oct 23 2006, 14:23
А вот приемник ИК пульта от Самсунга (кодировка типа NEC, но со своими особенностями).
Работает на АТтини2313, у меня - 11.059 мгц кварц. Собственно, по сорсам все понятно должно быть.
SasaVitebsk
Nov 21 2006, 00:01
Свой вариант библиотек LCD44780 и DS1820.
Очень понравился по стилю написания вариант работы с HD44780 от protoss, но как мне кажется он не полный. Выкладываю свой. Думаю уважаемый protoss им не воспользуется, а вот начинающие - возможно. Также вариант библиотеки для работы с DS18x20.
Возможности LCD44780. Есть вторичный вывод. Вывод символа в Win кодировке, прямая адресация курсора, сплитер и др. Поддерживаются стандартные п/п printf и outs вместе с форматированием. Форматирование расширено что позваляет легко делать меню.
Возможности DS18x20. Позволяет подключать несколько датчиков DS1820/18b20/18s20 в любом сочетании. Позволяет динамически определять их колличество и подключать новые. Позволяет работать с ними по 2-ух проводной шине.
Здравствуйте!
Я вот тут решил зарегистрироваться и кое чем поделиться, ибо искал это кое что.... долго

А именно - исходник инициализации и работы с LCD МТ-16s2 фирмы МЭЛТ по 4-х проводному интерфейсу. Написано под WinAvr, но я за 5 минут переделал под CVAVR.
Выкладываю оригинал (надеюсь автор не будет против).
Вся бякость этого LCD состоит в том, что он не совсем аналог HD44780
Если кому интересно ,как я поборол жки нокиа3510и.
Проект на 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
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.