|
Исходники программ и библиотек, у вас есть чем поделиться? |
|
|
|
 |
Ответов
(45 - 59)
|
Oct 23 2006, 14:23
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 13-10-05
Пользователь №: 9 568

|
А вот приемник ИК пульта от Самсунга (кодировка типа NEC, но со своими особенностями). Работает на АТтини2313, у меня - 11.059 мгц кварц. Собственно, по сорсам все понятно должно быть.
|
|
|
|
|
Nov 21 2006, 00:01
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Свой вариант библиотек LCD44780 и DS1820. Очень понравился по стилю написания вариант работы с HD44780 от protoss, но как мне кажется он не полный. Выкладываю свой. Думаю уважаемый protoss им не воспользуется, а вот начинающие - возможно. Также вариант библиотеки для работы с DS18x20. Возможности LCD44780. Есть вторичный вывод. Вывод символа в Win кодировке, прямая адресация курсора, сплитер и др. Поддерживаются стандартные п/п printf и outs вместе с форматированием. Форматирование расширено что позваляет легко делать меню. Возможности DS18x20. Позволяет подключать несколько датчиков DS1820/18b20/18s20 в любом сочетании. Позволяет динамически определять их колличество и подключать новые. Позволяет работать с ними по 2-ух проводной шине.
Прикрепленные файлы
ds1820.zip ( 4.51 килобайт )
Кол-во скачиваний: 16120
HD44780.zip ( 5.85 килобайт )
Кол-во скачиваний: 15899
|
|
|
|
|
Nov 29 2006, 22:08
|

Частый гость
 
Группа: Свой
Сообщений: 149
Регистрация: 29-11-06
Из: Барнаул
Пользователь №: 22 916

|
Здравствуйте! Я вот тут решил зарегистрироваться и кое чем поделиться, ибо искал это кое что.... долго  А именно - исходник инициализации и работы с LCD МТ-16s2 фирмы МЭЛТ по 4-х проводному интерфейсу. Написано под WinAvr, но я за 5 минут переделал под CVAVR. Выкладываю оригинал (надеюсь автор не будет против). Вся бякость этого LCD состоит в том, что он не совсем аналог HD44780
Сообщение отредактировал Screw - Nov 29 2006, 22:10
|
|
|
|
|
Jan 8 2007, 23:03
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 6-01-07
Пользователь №: 24 153

|
Проект на 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
Прикрепленные файлы
arxiv.rar ( 80.49 килобайт )
Кол-во скачиваний: 1662
|
|
|
|
|
Jan 11 2007, 04:56
|
Участник

Группа: Участник
Сообщений: 52
Регистрация: 11-01-07
Пользователь №: 24 303

|
Поделюсь своим кодом на Ассме для организации меню на буквенно цифровом дисплее HD4478 16х2.. В программе реализована отправка строк с флеш памяти. При нажатии одной из 4 кнопок происходит прерывание Int_1, затем его обработка (со звуковым сигналом). Куда подключать кнопки и дисплей, ясно из программы, динамик-через усилительный транзистор Расчитано для работы на 4 МГц кварце. Для приминения на других частотах кварца нужно просто поменять значение, заносимое в рег r20 DELAY20MS: wdr; sbros storozhevogo timera (mozhno zapreshat' ego raboty) LDI R20,110; Сюда (20=1МГц, 40=2 и.т.д) d20: dec r20 ... если что неясно, пишите kadrum@narod.ru или ICQ#: 191-851-131  код для HD 4478 здесь
Сообщение отредактировал Шалапут:-) - Jan 11 2007, 05:09
--------------------
Роботы делают роботов - предел автоматизации
|
|
|
|
|
Jan 16 2007, 20:08
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 12-01-07
Из: Крым
Пользователь №: 24 378

|
Может кому будет полезно очень быстрое преобразование двоичного ( 4-х байтного ) числа в двоично-десятичное число . Собственный алгоритм . Взято из рабочей программы ; некогда было окультуривать. Вполне можно перенести на Си . Очень удобно когда есть неоходимость , например , вывода на экран каких либо значений , которые считаются внутри в двоичном виде .
|
|
|
|
|
Jan 21 2007, 01:19
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Часто появляются вопросы об удобном доступе к ножкам порта. Несколько раз выкладывал в разных темах очень удобные (как мне кажется) макросы. Решил выложить здесь наиболее свежую версию, чтобы потом долго не искать. Пользоваться ими так: Код #define LED1 PORTC,2,H // output, active high (led from PC2 to GND) #define LED2 PORTD,3,L // output, active low (led from Vcc to PD3) #define KEY1 PINB,5,L // input, active low (key from PB5 to GND, pull-up resistor) #define KEY2 PINC,7,H // input, active high (key from Vcc to PC7, pull-down resistor)
#include "ascold.h" unsigned char Key1Status; unsigned char Key2Status; void main() { Key1Status = signal(KEY1); Key2Status = signal(KEY2); for(;;) { cpl(LED1); // toggle LED1 if(signal(KEY1)) // if KEY1 pressed, turn on LED2 on(LED2); else // otherwice turn off LED2 off(LED2); } }} Если в результате переразводки вывод поменялся, достаточно изменить лишь одну строчку #define Я использую с компилятором IAR для процессоров AVR, MSP430, AT91SAM7, LPC2xxx, ADuC70xx. Но они должны работать и с любым другим компиляторм.
Прикрепленные файлы
ascold.zip ( 1.15 килобайт )
Кол-во скачиваний: 2506
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 22 2007, 14:42
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Сергей Борщ @ Jan 21 2007, 00:19)  очень удобные (как мне кажется) макросы. Я тоже ими пользуюсь очень давно :-) Только signal() переименовал сразу же в bit_active() (ну и все остальные в bit_on/bit_off для однообразия). После какого-то давнего залёта со своей переменной с именем errno в борландовском С - не рискую применять имена, могущие пересечься с чем-то "очень стандартным".
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jan 30 2007, 16:34
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 28-05-05
Из: Питер
Пользователь №: 5 495

|
Код (* Вычисление дня недели в приложениях автоматического вычисления дня недели в датах от 1996 года и старше.
Copyright (C) Sergei Frolov, 1998. v1.0 Jan, 4, 1998.
Программа ориентирована на применение в приложениях, написанных на языке ассемблера без использования аппаратного умножения/деления и операций с плавающей запятой. *)
program denned; const YEARS : array[0.. 3] of byte = (0, 2, 3, 4); MONTHS : array[1..12] of byte = (0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5); DAYOFWEEKS : array[0..6] of string = ('Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'); var a, b, c, d, e, f, tmp : byte; day, month, year : word;
begin repeat write('Число XX -> '); readln(day); if day = 0 then break; { выход } write('Месяц XX -> '); readln(month); write('Год XXXX -> '); readln(year); tmp := year - 1996; a := tmp and 3; b := (tmp shr 2) + (tmp and $FC); c := MONTHS[month]; if (a = 0) and (month > 2) then inc(c); a := YEARS[a]; e := (a + b + c + day) mod 7; writeln('Результат: ', DAYOFWEEKS[e]); writeln; until false; end.
|
|
|
|
|
Feb 4 2007, 20:30
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 2-06-06
Пользователь №: 17 720

|
Сергей БорщЦитата #define LED1 PORTC,2,H // output, active high (led from PC2 to GND) Интересно, как у вас работают программы с комментариями // в #define, или компилятор это отлавливает ?
Сообщение отредактировал umup - Feb 4 2007, 20:31
|
|
|
|
|
Feb 4 2007, 23:16
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(umup @ Feb 4 2007, 19:30)  Сергей БорщЦитата #define LED1 PORTC,2,H // output, active high (led from PC2 to GND)
Интересно, как у вас работают программы с комментариями // в #define, или компилятор это отлавливает ? IAR не жалуется. GCC (WinAVR) тоже. Согласно http://gcc.gnu.org/onlinedocs/cpp/Initial-...tial-processing комментарии заменяются пробелами до обработки #define
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 21 2007, 10:20
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(svlad @ Feb 20 2007, 20:09)  Цитата(Kuzmi4 @ Feb 20 2007, 14:21)  2 svlad - interrupt.h и io.h надо поставить винавр тогда они появяться. Если кому интересно могу выложить декодировку манчестера по INT0 для 8-й меги.
не уж то ни у кого нет WinAVR?  В чем вопрос-то состоял? www.google.ru, искать по ключевому слову WinAVR. Хотя это первое, что нужно делать перед писанием в конференции.
Эскизы прикрепленных изображений
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|