Сообщение от Азат:
Здраствуйте Петр.Попробывал вашу прошивку RC5 все нормально работает.Моя почему то сбоит.Вроде все настройки выставил как у Вас.
Да не пропал я. Железо и исходники от этого hex временно недоступны (отпуск), поэтому точного ответа дать не могу, только виртуально. А что значит сбоит?
[Ответ]
petrd 10:36 01.12.2010
Сообщение от Butik:
где во втором варианте косяк- совсем непонятно.. при компиляции ошибки нет... но ни в протеусе ни в железе не работает
я же писал помните, то что через пять раз нажатия на пульте начинают на экране разные символы выводить, а потом зависает.А ваша прошивка работает идеально.Хорошего отпуска)).
[Ответ]
Спасибо.
Программная последовательность:
1) Конфигурируем RA4 как выход с уровнем лог. "0" для разрядки конденсатора.
PORTA=16
2) Конфигурируем RA4 как один из входов компаратора, другой вывод компаратора подключается к внутреннему источнику опорного напряжения.
3) Запускаем таймер и измеряем время до срабатывания компаратора.
Давайте попробуем разобрать код сам не справлюсь? Каким номеналом поставить резисторы и конденсатор(нужен ли он)? И по схеме получается если при одновременном нажатие будет срабатывать первая кнопка?
[Ответ]
petrd 11:35 03.12.2010
Сообщение от Butik:
Но тогда непонятно почему работает так
при включении проверяется состояние GP5, и если оно 0 (а такое легко может быть и вообще мы можем попасть в любой момент времени периода повторения импульсов синхронизации 50 Гц, что в итоге приведет к тому, что конденсатор либо вообще никогда не начнет заряжаться, либо не успеет зарядится до нужного уровня), то попадаем в проверку while, а так как у нас перед этим ни одного цикла зарядки конденсатора не было (или он был, но короткий, т.е. недозаряд), то и имеем COUT = 1 ( VIN+ > VIN-) и дальше незапланированный вечный цикл из которого можно выйти только когда конденсатор заряжен, а чтобы зарядить - надо выйти из цикла - замкнутый круг. И, вообще, мы же с сетью не синхронизированы, то рано или поздно такой момент возникает.
А когда используется if, то никакого вечного цикла быть не может.
Как-то так.
[Ответ]
petrd 11:12 04.12.2010
Сообщение от Азат:
Давайте попробуем разобрать код сам не справлюсь? Каким номеналом поставить резисторы и конденсатор(нужен ли он)? И по схеме получается если при одновременном нажатие будет срабатывать первая кнопка?
А зачем вообще такое надо? Что ног у контроллера мало? Такой вариант вообще от безысходности, ибо он нестабилен по температуре, надо подбирать резисторы и конденсаторы, подбирать значения таймера. Сделать-то можно, но оно того не стоит.
[Ответ]
Петр хочу попробывать сделать радиоуправление.Данный пример манчестера должен передать слово Микроэлектроника.(Т.е задумка в итоге сделать радиоуправление двумя кноками (При чем чтоб поддерживалось одновременное нажатие)).Правильно ли я делаю.
Сообщение от :
// Manchester module connections
sbit MANRXPIN at RA0_bit;
sbit MANRXPIN_Direction at TRISA0_bit;
sbit MANTXPIN at RA1_bit;
sbit MANTXPIN_Direction at TRISA1_bit;
// End Manchester module connections
while (1) { // Endless loop
if (Button(&PORTA, 2, 1, 0))
oldstate = 1;
if (oldstate && Button(&PORTA, 2, 1, 1)){
Man_Send(0x0B); // Send "start" byte
Delay_ms(100); // Wait for a while
character = s1[0]; // Take first char from string
index = 0; // Initialize index variable
while (character) { // String ends with zero
Man_Send(character); // Send character
Delay_ms(90); // Wait for a while
index++; // Increment index variable
character = s1[index]; // Take next char from string
}
Man_Send(0x0E); // Send "end" byte
Delay_ms(1000);
oldstate = 0;
}
if (Button(&PORTA, 3, 1, 0))
oldstateo = 1;
if (oldstateo && Button(&PORTA, 3, 1, 1)){
Man_Send(0x0B); // Send "start" byte
Delay_ms(100); // Wait for a while
character = s2[0]; // Take first char from string
index = 0; // Initialize index variable
while (character) { // String ends with zero
Man_Send(character); // Send character
Delay_ms(90); // Wait for a while
index++; // Increment index variable
character = s2[index]; // Take next char from string
}
Man_Send(0x0E); // Send "end" byte
Delay_ms(1000);
oldstateo = 0;
}
}
}
Сообщение от Азат:
Петр хочу попробывать сделать радиоуправление.Данный пример манчестера должен передать слово Микроэлектроника.(Т.е задумка в итоге сделать радиоуправление двумя кноками (При чем чтоб поддерживалось одновременное нажатие)).Правильно ли я делаю.
1. Если код манчестера из примеров MikroC, то он рабочий. Но у него есть недостатки - код блокирующий, т.е пока выполняются подпрограммы манчестера ничего другого делать нельзя (прерываниями нельзя пользоваться, а это большой минус), вообщем эта библиотека как-бы только для пробы пера. Альтернатива - ШИМ модуляция (подобная манчестерскому кодированию). У микрочип этот документ, называется TB045, на стейт-машине как RC5.
2. На схеме передатчик RT4, а приемник RR4 у Вас есть? Эта сладкая парочка работает с АМ, что не есть хорошо. Пробовал эту парочку, работает, но лучше с ЧМ.
3. В Вашей схеме светодиод на RA4 работать не будет - там открытый коллектор.
[Ответ]
Азат 07:22 05.12.2010
petrd, А rc5 у меня не совсем правильно работает выше есть проект пост #695.TB045 Там примеры все на ассеблере.Если бы я это понимал.Прочитал куча литературы про манчестер голова пухнет.Приемник и передатчик заказал но еще не пришли rt5 и rr10.Пообещал ребенку на новый год управляемую машину сообрать.Вот пытаюсь.Такое исполнение схем правильное?Если не затруднит давайте разберем этот проект вместе досканально от теории до кода думаю многих это заинтересует.
Изображения
petrd, Петр т.е к примеру если я повешу на передатчик RB0 ик приемник?щелкну на пульт.И через шим отправлю на приемник.Где на приемники прошита Philips RC5 он должен выдать что эта за команда.Правильно?
Чтоб передать шим нужно выставить
pwm_init(37000) ?
pwm_change_duty(64)?
[Ответ]
petrd 10:16 08.12.2010
Сообщение от Азат: petrd, Петр т.е к примеру если я повешу на передатчик RB0 ик приемник?щелкну на пульт.И через шим отправлю на приемник.Где на приемники прошита Philips RC5 он должен выдать что эта за команда.Правильно?
Чтоб передать шим нужно выставить
pwm_init(37000) ?
pwm_change_duty(64)?
Теоретически по простому заменить RC5 на радио можно, а практически не знаю, что из этого получится. Можно попробовать вместо ИК диода в ПДУ подсунуть передатчик RT (c учетом питания) и посмотреть, что получится. А про ШИМ Вы меня не правильно поняли - ШИМ в данном случае это термин вида модуляции, а не модуль контроллера.
[Ответ]
Азат 10:39 08.12.2010
petrd, Помогите с примером.И взгляните пожалуйста на проект пост #695,что в нем не так может настройки.
[Ответ]
petrd 09:59 09.12.2010
Сообщение от Азат:
И взгляните пожалуйста на проект пост #695,что в нем не так может настройки.
Попробуйте вот это, в архиве проект полностью.
Изображения
petrd, Спасибо.
1. По проекту RC5.Вопрос такой что не так с Toggle т.е при нажатие на кнопку "1" он ставит "T" (т.е включен),еще раз при нажатие "1" убирает "T" (т.е выключен).При таком раскладе все правильно.
При нажатие на кнопку "1" он ставит "T" (т.е включен), при нажатие "2" убирает "T" (т.е выключен),при нажатие на кнопку "1" он ставит "T" (т.е включен),а по идеи должен выключить.
[Ответ]
petrd 08:21 11.12.2010
Сообщение от Азат: petrd, Спасибо.
1. По проекту RC5.Вопрос такой что не так с Toggle т.е при нажатие на кнопку "1" он ставит "T" (т.е включен),еще раз при нажатие "1" убирает "T" (т.е выключен).При таком раскладе все правильно.
При нажатие на кнопку "1" он ставит "T" (т.е включен), при нажатие "2" убирает "T" (т.е выключен),при нажатие на кнопку "1" он ставит "T" (т.е включен),а по идеи должен выключить.
Почитайте стандарт, тут все правильно. Этот бит меняется на противоположный каждый раз, когда нажимается кнопка.
[Ответ]
Азат 12:30 11.12.2010
petrd,
1.А тогда как отследить если я хочу включить и выключить светодиод т.е при поступление команды 1 вкл еще раз выключить. Если просто без toggle то при удерживание кнопки он будет моргать.А если условие что toggle 1 вкл и 0 выкл(то проблема при нажатие других кнопок приходиться несколь раз нажимать на кнопку 1).
2.После компилирование прошивки на MikroC Pro 3.8 ошибка осталась.
[Ответ]