по-моему в расширении файла. Среде arduino нужно, чтобы у основного файла библиотеки было расширение .cpp
А, ну и вместо uart_writebyte надо было uart_sendbyte, но это ты бы и сам нашел :-).
Вид для печати
по-моему в расширении файла. Среде arduino нужно, чтобы у основного файла библиотеки было расширение .cpp
А, ну и вместо uart_writebyte надо было uart_sendbyte, но это ты бы и сам нашел :-).
эта библиотека обладает таким свойством - у нее нет буфера. Если байт принялся, его можно считать. Но если во-время не считал, то следующий пропадет.
Передача тоже без буфера - если контроллер уже отправил предыдущий байт, то функция отправки завершится сразу. Если прошлый еще не отправился, функция будет ждать, пока не отправится прошлый байт и только потом завершится.
Я только хотел спросить про буфер :)
Данные все равно через буфер FTDI проходят, почему он потеряется?
P.S.
Посмотрел встроенную библитотеку Serial , они прерывание используют и буфер в оперативке контроллера
ftdi дергает ногой, mega аппаратно распознает эти данные. Но поскольку никакого контроля готовности приема мегой нет, ftdi тупо шлет данные, не дожидаясь, пока мега будет готова принимать данные.
Штатная библиотека вешается на прерывание, которое вызывается в момент прихода символа из uart, помещает этот байт в буфер.
В случае простого приложения, готового непрерывно пытаться читать данные из порта, получается выгоднее использовать такую простую библиотеку. Она занимает буквально байт 40 flash, думаю.
Чип, я таки попробовал использовать правильную модель обращения к портам из среды arduino.
В приложенном файле архив скетча и библиотеки ардуино.
При использовании учесть:
1. include'идь нужно только #include <ArduinoPins.h> хотя при добавлении библиотеки по умолчанию прописывается туча includ'ов. Лишние удалить. Еще можно инклудить pinlist.h для работы со списком пинов и latch.h для работы со сдвиговыми регистрами.
2. Не забывать в начале прописывать
using namespace IO;
3. Ноги имеют название D0 - D13 и A0 - A5.
4. Не забывать ставить двоеточие, а не точку при обращении к функции, к примеру D1::Set(); но не D1.Set();
5. Если хотите дать ноге свое название, то можно написать что-то вроде
typedef D8 LedPin;
и потом писать
LedPin::SetDirWrite();
LedPin::Set();
И самое главное - эти библиотеки дают быстрейший код из возможный и занимающий минимум места!
К примеру, D1::Set() выполняется два такта (одна команда контроллера).
Спасибо!
Почему-то у меня некорректно отображается схема в орле, или это я некорректно вижу)? ниже прикладываю скриншот.
http://i039.radikal.ru/1104/73/8c83b6e2b05ct.jpg
Так и должно быть, там была ардуина и я ее тупо вырезал. А части схемы на самом деле соединены - смотри на лейблы mosi, latch, sck
На самом деле можно сделать существенно более простую схему на двух мегах, к примеру 16-х, 8515 или подобных. Схема будет однослойной, на ней будет до десяти перемычек, из микросхем будет ft232rl, две меги и uln'ки. А количество каналов можно увеличить до 60 (20 полноцветных).
А с начала ты ее замучаешься читать :-)
Осилил. Буду пробовать собирать, пока жду ULN с ибея. На работе лежит 8 мега, думаю с ней все получится.
Посмотрел видео ролик с аватаром - завораживает, однако чего-то недостает до оригинального эмбилайта, возможно если попробовать сделать это все на пираньях и прикрыть матовым светофильтром (матированный плексиглас скорее всего не подойдет ибо будет снижать интенсивность света).
Не знаю видели ли это другие но мне понравилось: http://www.steffenschuette.de/steffe...ght/index.html
видео: http://www.youtube.com/watch?v=4etJtaCZNKo
как видно человек пошел немного дальше и реализовал все на аппаратном уровне, оцифровка RGB потока, не совсем понятно как выделить из этого потока нужные области изображения. К сожалению врятли применимо к HDMI, но даже на 3-х зонах его устройство дает не плохое качество подсветки.
Так же там можно увидеть всю несостоятельность использования пираний - очень плохое смешивание цветов ..... заказываю ленты.
для hdmi нужна программируемая логика. Я в ней не разбираюсь пока.
не примите за рекламу, но вот aptilight
человек тоже сделал на апаратном уровне, причем на достаточно большое кол-во каналов...
но опять же... пока только ДЕМО версия, еще даже не мелкосерийку не вышел...
он тут появлялся, но не стал объяснять как сделал.
В aptilight стоит серийно выпускаемый приёмник HDMI сигнала и простая CPLD, на которой реализованы ШИМы. На мой взгляд не самое интересное решение.
зато эта конструкция может быть использована без компьютера, что сильно расширяет функционал. Правда, как практика показывает, нужно еще иметь возможность регулировать у подсветки яркость, контрастность, баланс белого. А у aptilight этого по-моему нет.
v.1.1.10 beta (для тестирования)
попытка избавится от мерцания курсора в windows
просьба протестировать работоспособность с двухмониторной конфигурацией
Курсор не мерцает, но в настройках всё дико тормозит да и сам эмбилайт выдаёт 3 Гц...
я вечером попробую и отпишусь
С одним монитором работает нормально, с двумя ахтунг.
с двумя мониторами 1 hz ;-)
У мня больше, ЕЕЕЕЕЕЕ :-)
Собрал на 28 зон на 6 tiny'ках 2313. работает от двух ком портов :) на двух программах от Eraser. на core2 3ghz загрузка проца 50-60%. на ноутбуке 2ghz как не страно всего 40%. там и там около 14 герц. вообщем на проигрывание fullHD ресурсов почти неостается. аватар на 40гб тормозит. что самое интересное при запуске 1 программы загрузка проца всего 13% а при запуске второй и первая и вторая программа начинает потреблять по 20% + еще какой то процесс под названием system тоже начинает жрать ресурсы проца. ....надеюсь на поддержку 84 каналов в будущем в одной программе :)
Выглядит класссссс!!!
crazydnb, можно у тебя узнать какой размер телевизора?
46 дюймов.
я подумывал сделать на atmega169, они недорогие,меньше 200 рублей, и у каждой примерно по 50 управляемых ног. Соответственно, проще прошивать все это дело.
crazydnb, а как ты тянул все это дело вокруг телека?
v.1.1.11
+неограниченное количество зон (теоретически :) )
+новый метод снятия скриншота в windows, устранено мерцание (отключается в файле настроек isWinAPIGrab=0, если возникнут проблемы)
fix SDK
другие исправления
Скачать v.1.1.11
crazydnb, а как ты тянул все это дело вокруг телека?[/QUOTE]
остальные тут
http://foto.mail.ru/mail/crazydnb/56/75
http://content.foto.mail.ru/mail/crazydnb/56/i-76.jpg
Запустил tomb raider legend и подсветка заработала в игрушке. прикольно.
С новой версией программы?
написал небольшую инструкцию по сборке
не гарантирую, что все правильно, возможно я указал не все пакеты, которые понадобятся
если не получится, пишите, разберемся :)
Попробовал использовать два монитора. работает нормально выдает 14гц при разрешении 1280х720, при 1920х1080 всего 8гц. использовал ноутбук 2ghz + телек по hdmi. загрузка проца 20% и 30% при большем разрешении. при запуске игрушки вроде работает но переодически пропадает подсветка. вообщем 6 тинек 2313 подключеных паралельно чувствуют себе отлично. результатом доволен :) Eraser'у спасибо за програмку !!!