У меня в windows 7 тоже вылазит ошибка при нажатии на пульте.
FT_Read - General IO Error...
Длина кабеля 50 см.
Причем одна кнопка на пульте работает без ошибок, на все остальные вылазит вот такое, либо просто не срабатывает
У меня в windows 7 тоже вылазит ошибка при нажатии на пульте.
FT_Read - General IO Error...
Длина кабеля 50 см.
Причем одна кнопка на пульте работает без ошибок, на все остальные вылазит вот такое, либо просто не срабатывает
Что за пульт используешь?
Подскажите как использовать программу IRkey, когда в системе куча устройств на FTDI и все они работают. Драйвер ставится не на тот порт.
Читай здесь
а в драйвере уже есть какие-то механизмы чтобы он перешитую ардуину находил? Или надо какой-то другой качать?
Кстати ничего что одно из других устройств тоже ардуино?
программа всегда ищет сначала ардуину с прошитым ID compcar
А нет ли какой-нибудь другой проги с похожим функционалом? А то у меня прога ваще живет своей жизнью и после хибернейта вылетает, потому как не может найти ком-порт. А компорт в системе есть и никуда не пропадает.
A c JVC у кого-нибудь работает? Какой там протокол? Попробовал добавить в библиотеку протокол JVC http://www.arcfn.com/2009/08/multi-p...e-library.html но пока не работает.
Разобрался с библиотекой, все просто. В принципе можно написать любой протокол. Пока мне нужно только посылка команды. Только вот есть один баг в самой IRemote.
Функция void IRsend::mark(int time) включает светодиод на время time в мс. Но по факту если значение больше 7200, то сигнал прерывается, и получается вот такая картина.
Вот сами функции, думаю где-то тут собака зарыта. Сам пока с ардуино да и вообще с мк, 3ий день, поэтому в регистрах не шарю.
Код:void IRsend::mark(int time) { // Sends an IR mark for the specified number of microseconds. // The mark output is modulated at the PWM frequency. TCCR2A |= _BV(COM2B1); // Enable pin 3 PWM output delayMicroseconds(time); } void IRsend::enableIROut(int khz) { // Enables IR output. The khz value controls the modulation frequency in kilohertz. // The IR output will be on pin 3 (OC2B). // This routine is designed for 36-40KHz; if you use it for other values, it's up to you // to make sure it gives reasonable results. (Watch out for overflow / underflow / rounding.) // TIMER2 is used in phase-correct PWM mode, with OCR2A controlling the frequency and OCR2B // controlling the duty cycle. // There is no prescaling, so the output frequency is 16MHz / (2 * OCR2A) // To turn the output on and off, we leave the PWM running, but connect and disconnect the output pin. // A few hours staring at the ATmega documentation and this will all make sense. // See my Secrets of Arduino PWM at http://arcfn.com/2009/07/secrets-of-arduino-pwm.html for details. // Disable the Timer2 Interrupt (which is used for receiving IR) TIMSK2 &= ~_BV(TOIE2); //Timer2 Overflow Interrupt pinMode(3, OUTPUT); digitalWrite(3, LOW); // When not sending PWM, we want it low // COM2A = 00: disconnect OC2A // COM2B = 00: disconnect OC2B; to send signal set to 10: OC2B non-inverted // WGM2 = 101: phase-correct PWM with OCRA as top // CS2 = 000: no prescaling TCCR2A = _BV(WGM20); TCCR2B = _BV(WGM22) | _BV(CS20); // The top value for the timer. The modulation frequency will be SYSCLOCK / 2 / OCR2A. OCR2A = SYSCLOCK / 2 / khz / 1000; OCR2B = OCR2A / 3; // 33% duty cycle }
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)