-
Постов
47 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о DiMomite
-
Звание
Участник
- День рождения 20.10.1985
Контакты
-
Сайт
Array
Информация
-
Город
Array
-
Радиомодули RFM12
DiMomite ответил adc тема в В помощь начинающему
Скорее всего ошибка в функции приема: uint8 RF12_RECV_(void) { uint16 data; WAIT_NIRQ_LOW(); writeCmd(0x0000); data = writeCmd(0xB000); return (data & 0x00FF); } Потому что WAIT_NIRQ_LOW(); используется только при передаче. В документе, который я приложил во втором сообщении в этой тебе как раз это и описано на странице 6 сверху. Если очень сильно нужно работать с приемником по прерываниям, то надо использовать вывод FFIT/DCLK (сам не проверял, потому что нашел другой более подходящий для меня способ, о котором ниже). Если не изменяет память, то у меня тоже шли постоянные 0x00 когда я делал с WAIT_NIRQ_LOW(); В том же документе для приемника приведен такой код: unsigned char rfRecv() { unsigned int data; while(1) { data = writeCmd(0x0000); if ( (data&0x8000) ) { data = writeCmd(0xB000); return (data&0x00FF); } } } Объясню это словами: для того что бы знать принят байт или нет, в модуль надо писать пустое слово 0x0000, и смотреть установлен ли в принятом слове старший байт. Но мне этот метод не понравился из-за достаточно большой длительности. Однако, если учесть, что радиомодуль передает данные старшим битом вперед, то можно просто смотреть на уровень сигнала на ножке MISO микроконтроллера предварительно выбрав модуль и опустив уровень на ножке MOSI. (Этот метод показан на странице 25 родного даташита на микросхему RF12B). Кроме того я таким образом еще и проверял наличие данных для приема в основном цикле основной программы: опускаем CS, опускаем MOSI, если на ножке MISO высокий уровень, то можно принимать данные. Прилагаю свой вариант работы с модулем взятый из своего проекта. Код точно рабочий. Если где поудалял из файлов нужные #define, пиши, добавлю. Хотя повторюсь, что если требуется максимальная скорость обнаружения принятых данных, то нужно выделить для прерываний от приемника отдельный вывод. RFM12B.rar -
Радиомодули RFM12
DiMomite ответил adc тема в В помощь начинающему
Я так понял, что это "Synchron pattern Command" , описывается сразу после "FIFO and Reset Mode Command" . Командой writeCmd(0xCED4); задается, что в качестве нулевого байта будет использоваться 0xD4. Модуль может использовать в качестве синхронизирующей последовательности либо 1, либо 2 байта. Второй (Byte1) всегда равен 0x2D и включается битом sp в команде "FIFO and Reset Mode Command ", а первый (Byte0) можно задать самостоятельно как раз командой 0xCEхх. Сам я это не проверял, использую рекомендованное значение, так что прокомментировать не могу. И еще. Тут http://radio.delanet.ru/content/view/571/46/ можно скачать генераторы кода инициализации. -
Радиомодули RFM12
DiMomite ответил adc тема в В помощь начинающему
В приложенной выше pdf-ке это место даже выделено на странице 4 во втором листинге writeCmd(0x8299); //er,!ebb,ET,ES,EX,!eb,!ew,DC (bug was here) а в родном документе от hoperf (приложил к посту ниже) на странице 20 в инициализации приемника есть такая строчка RFXX_WRT_CMD(0x8239);//!er,!ebb,ET,ES,EX,!eb,!ew,DC , причем, в инициализации передатчика на странице 14 эта строчка такая же, что явно указывает на ошибку. В примере для PIC этой ошибки нет. Я ее обнаружил когда пример не заработал и начал проверять секцию инициализации модуля. Тот пример, что я привел выше, запустился на макете сразу без всяких проблем. Попробуй с ним. Если будут проблемы, то надо проверять железо. И еще. В примере от производителя используется программная реализация SPI. Проверял и с аппаратной в режиме mode0 (CPOL=0, CPHA=0). Частота должна быть не выше 10МГц(частота кварца на модуле)/4=2,5МГц. Я использовал 20/16=1,25МГц. RF12B_code.pdf -
Радиомодули RFM12
DiMomite ответил adc тема в В помощь начинающему
Если подключал к AVR пользуясь примером от производителя, то там ошибка в инициализации, кажется, приемника. Ниже прикладываю проверенный пример работы взятый уже не помню где. rfm12b.zip rfm12b_and_avr__quick_start.pdf -
hid протокол
DiMomite ответил SergeyVas тема в В помощь начинающему
Непосредственно по Delphi помочь не могу, так как писал работу с HID на С. В качестве простого стартового примера на С использовал этот http://www.telesys.ru/wwwboards/mcontrol/2...es/631258.shtml , тут есть небольшие разъяснения как искать устройства на шине и посылать/принимать репорты. Ниже приложил пример HIDTest с диска из книжки Агурова - там на Delphi показано как получать хэндл устройства, и считывать некоторые основные дескрипторы. Думаю что эти два примера в купе помогут разобраться. HIDTest.rar -
Как разбить 2 байта по байту))
DiMomite ответил Xenom0rph тема в Программирование
В CVAVR надо писать так: eeprom unsigned char a[10]; -
СПАМ в PM
DiMomite ответил aaarrr тема в Архив предложений и замечаний
Получил сегодня такое же письмо, но ника автора в нем уже не было. Похоже что удалился успешно. -
А JTAG на порте С отключен?
-
простой вопрос
DiMomite ответил SergeyVas тема в В помощь начинающему
unsigned char arr[10]={'z','S','"',...,'g'}; вы это подразумевали? -
Обозначения по ГОСТ
DiMomite ответил misha88 тема в В помощь начинающему
Там же на торрентах :) : __http://torrents.ru/forum/viewtopic.php?t=412992 _________2003_10.rar _________2003_11.rar _________2003_12.rar -
Обозначения по ГОСТ
DiMomite ответил misha88 тема в В помощь начинающему
Вот то, что просили. 2.728_74.rar 2.730_73.rar 2.755_87.rar 2.756_76.rar Если надо еще что-то, пишите, скачаю, выложу. -
Обозначения по ГОСТ
DiMomite ответил misha88 тема в В помощь начинающему
На торрентах есть множество ГОСТ-ов. __http://torrents.ru/forum/viewtopic.php?t=537987 Вот скачанный оттуда упомянутый тут ГОСТ 2.702-75. 2.702_75.rar -
atmega - LCD на порту C
DiMomite ответил idono тема в В помощь начинающему
В CodeVision можно просто использовать #pragma rl+ и #pragma rl- для того, что бы писать в компиляторе русскими буквами выводимый текст. Таким вот образом: #pragma rl+ lcd_putsf ("Русский текст"); #pragma rl- -
Это просто сборки пары комплементарных транзисторов: UMZ1N, UMZ2N, UMY1N, UMY3N, UMY4N, BC847PN Это сборки "цифровых" (с парой резисторов) BCR10PN, BCR08PN, BCR22PN, BCR48PN Может что подойдет.
-
Насколько мне известно самые низкие цены на Atmel на Виакоме. Вот для сравнения ссылка на харьковский магазин _http://kosmodrom.com.ua/product.php?page=0&name=avrdragon&okbutton=%CF%EE%E8%F1%EA доставка у них Автолюксом. Где еще на Украине есть Драконы, я не знаю. А свой Дракон я в Одессе брал вообще за 450грн., но это была контора дикий посредник. Только со потом узнал где есть дешевле.