PIC - USART не выходит из прерывания

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Происходит следующее: на входе пика RX висит ИК приемник TSOP. При нажатии кнопки на пульте светодиод на RB4 загораеться, и тухнит, и дальше ПИК как вроде зависает. Почему так ? должно же все работать ! в протеусе работает как нужно !


Код: Выделить всё

#include <htc>
 #define _XTAL_FREQ 4000000;
__CONFIG(0x03F72);


void main(void)
{

SPBRG = 129; // 19200 baud @ 4MHz
TXSTA = 0x24; // setup USART transmit
RCSTA = 0x90; // setup USART receive
PORTC = 0; // Clear PORTC
TRISC = 0x80; //

TRISB=0b00000000;


    while(1==1)
    {
   
        if(RCIF)
        {   

PORTC=RCREG;// считываем с регистра чтобы сбросить RCIF в ноль.
RCIF=0;
PORTB=0b00010000;   


            }
    _delay (99000);
_delay (99000);
_delay (99000);
_delay (99000);

PORTB=0b00000000;       
        }





   
}
Разворачивая тему дальше, если я поставлю ИК светодиод на выход TX и отправлю байт смогу ли я принять этот байт приемником tsop и прочитать его с RCREG ?

Спасибо !
Главная заповедь электронщика:- Не крути две ручки сразу
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

а с чего Вы решили, что оно должно работать ? Какая 19200, какой уарт с пульта ???
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Пультом я просто тестирую USART - а в чом ошибка ?

А вообще будет ли приниматься через TSOP Сигнал с ноги TX ?

или как вообще поступить ?
Главная заповедь электронщика:- Не крути две ручки сразу
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

artmasterpro писал(а):Пультом я просто тестирую USART - а в чом ошибка ?

А вообще будет ли приниматься через TSOP Сигнал с ноги TX ?

или как вообще поступить ?
1. используйте чистку флагов ошибки
-----------------------------
#define serial_error() OERR// переполнение буфера
#define nostop() FERR // отсутствие стопового бита
#define serial_fix() {CREN = 0; CREN = 1;}

if(serial_error()) serial_fix();
if (nostop()) RCREG;
------------------------------
2. RCIF=0; - бессмысленная запись, флаг сбрасывается при чтении RCREG
------------------------------
3. тсоп - это усилитель с детектором, если подавать туда уарт, то частота передачи - по максимуму не больше килобита.
-------------------------------
4. Внутри тсопа стоит ару и выдача непрерывного кода - сплошные единицы, например - ни к чему хорошему не приведет, это не его протокол. Он настроен на манчестерский код, вот его туда и посылайте.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Я спрошу по другому т.к. у меня пока хватает мозгов сделать только часы на пике.

суть в том: нужно сделать на пике ИК датчик (по отражению луча).
Датчик должен быть закодирован т.к. рядом будут использоваться еще 2 таких датчика.

Вопрос как это реализовать ! Хоть где копать ? может есть у когото пример кода, как выдать 36кГц в USART или есть другие способы ?

Пиво вышлю перевозчиком !
Главная заповедь электронщика:- Не крути две ручки сразу
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

http://www.remexpert.com/ipb/topic1000.html
читать только первое сообщение - там уже откорректированный и доведенный до ума вариант от дл36
Контактная информация:
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

порекомендовали такую микросхемку mcp2122 или mcp2120 что скажите ?
Главная заповедь электронщика:- Не крути две ручки сразу
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

В принципе, понятно, откуда ноги растут - http://www.microchip.su/showthread.php? ... #post93566
как Вам там правильно сказали, нет техзадания и решение "в лоб" приведет к засветке всех датчиков.
Вам нужно сказать, для чего все это надо и потом уже выбирать протокол обмена, чтобы каждое устройство работало в своем тайм слоте (я как бы догадываюсь, что устройства однотипные, могу ошибаться) - выработать механизм обработки коллизий - а чем там вы будете передавать - дело десятое. Ну, допустим, кто-то направит пульт от телека на один из датчиков - что тогда ?
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Рассказываю что и для чего нужно:

Есть ночной клуб которому нужно сделать барную стойку вдоль которой ходишь по всей длинне, а за тобой подсветка "ходит".

Т.е. нужно 3 активных ИК датчика (пассивные IRA пробовал сильно тормозят) которые будут при приближени выдавать логическую единицу на своем выходе. Все эти датчики будут включаться в PIC который будет управлять подсветкой.

ТЗ:

- количество датчиков: 3-8
- датчики должны быть построены на принципе отражения от обьекта.
- радиус действия каждого датчика: не более 1м.
- Размеры датчика должны быть минимально малыми.
- датчики могут расспологаться друг на против друга, поэтому должны быть закодированными друг от друга т.е. не перекрывать друг друга.
- допускается использование приемника TSOP или же более миниатюрного TDU
Главная заповедь электронщика:- Не крути две ручки сразу
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

не представляю пока, как это сделать... Ведь тсоп тем и хорош, что позволяет ловить сигнал от всего - от стен, от потолка, от брюк субъекта, который подошел к барной стойке.
Может, что-то в принципе поменять ? Например, что-то типа емкостного реле поставить ?
Не будете ведь систему зеркал городить...
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

варианты с емкостными реле в прошлом.

Что меня вдохновило на ИК датчик. Это полочка в мебельном магазине к которой подносишь предмет, хоть кусок пенопласта как на ней включаеться подсветка.

если бе мне нужен был один датчик я взял бе датчик sharp и мне его бы хватило, но беда в том что он такой не один то нужен.

в принцепи грубо говоря можно сделать 2 трубы (для приемника и ИК диода) чтобы ограничить диаграмму направлености TSOP

посмотрите тут видео:
http://www.societyofrobots.com/electron ... rial.shtml

если верить видео ролдику модуль TDU, в паре с mcp2120 работает на расстоянии 1м. И имеет достаточно узкую диаграмму направленности.

Что скажите?
Главная заповедь электронщика:- Не крути две ручки сразу
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

Ну, если я скажу, что мне не нравится - лично Вас это остановит ?
Продолжим разговор после Вашего ответа.
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Нет конечто же меня не остановит, сам процесс создания датчика я продолжу в любом случае. Знаете я не сторонник дурной работы. Поэтому и прошу помощи на форумах, прошу ваших ошибок, чтобы их не повторять. МК занимаюсь недавно, после своего дипломного проекта, в котором я занимался сугубо схематической частью. Теперь пытаюсь вкурить программирование МК. Если Вас интересуют деньги или % давайте обсудим.

Спасибо за помощЬ !
Главная заповедь электронщика:- Не крути две ручки сразу
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

Меня не интересуют ни деньги, ни проценты - я достаточно долго живу в этом мире, чтобы прельщаться мыслью получить их от Вас.
Ничего личного, просто опыт.
Что меня интересует - это вопрос, каким образом Вы собираетесь получить так называемый ик барьер, не покурочив барьерную стойку.
Теоретически можно предположить, что приемники - излучатели Вы захотите расположить на потолке, замаскировав их под датчики пожарной сигнализации.
Исчо варианты ?
На самом деле то, что Вам кажется второстепенным - и есть главное... Написать код на пики - обработать - как раз легче всего, поверьте мне.
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Спасибо на добром слове !
нет все гораздо проще, барная стойка имеет выперающую столешницу. Там полная тень, и не удобно залезть рукой. Т.е. эти мелкие коробочки не будет ни видно ни добраться рукой будет нельзя.
понятно или нарисовать ? т.е. меня интересет сугубо электронная часть по моему ТЗ остальное, есть кому делать и в других стойках можно будет заложить место под датчики в процессе разработки.
Главная заповедь электронщика:- Не крути две ручки сразу
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

http://radiokot.ru/circuit/digital/home/47/
+ ищем гуглом Инфракрасное дистанционное управление (А.Торес).pdf
и это в помощь http://www.cqham.ru/remote6.htm

// прерывание USART: RX(RB1) - приемник
if (RCIF & RCIE)
{
...тра-та-та
rx_tmp=RCREG;
// RCIF=0;
}
Последний раз редактировалось Настя Ср фев 24, 2010 16:59:06, всего редактировалось 1 раз.
натуральная блондинка
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

удалить
Последний раз редактировалось urry Ср фев 24, 2010 18:42:58, всего редактировалось 1 раз.
Контактная информация:
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

Идея отправки данных через TSOP в USART интересна,
но ограниченна сложностью реализации, точнее
человечностью подхода.
И проблема не в перываниях и не в манчестерском кодировании.
А в подготовке правильного сигнала, который будет передаваться
по ИК-каналу и приниматься TSOP. Да и это не проблема.

Задача интересная, но как-то по-дурацки решается.
Есть же датчики движения, есть емкостные датчики,
ультразвукые в конце концов. Тут и микроконтроллеров не надо.
Здесь надо через аналоговые подходы решать, через интенсивность.

Ну и таймслоты для разнесения по объектам.
натуральная блондинка
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Ребята я не буду тратить уймувремени на аргументирование почему именно ИК.

В кратце:
- Емкостные датчики не годяться по причине ложного срабатывания.
- Все существующие датчики движения с линзой фринеля, громоздки и притормаживают иногда.
- УЗ датчики, могут влиять на животных не адекватно если в дальнейшем эта система будет работать не только в рекламе но и в быту, например у меня дома.


Так вот мне кажеться очень простым решение с микросхемой MCP2120. В нее по ходуж просто отправляешь байт и принимаешь через нее. все остальное она делает сама ?
Главная заповедь электронщика:- Не крути две ручки сразу
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

artmasterpro писал(а):Так вот мне кажеться очень простым решение с микросхемой MCP2120. В нее по ходуж просто отправляешь байт и принимаешь через нее. все остальное она делает сама ?
По поводу "всё остальное" - слишком оптимистично.
К MCP2120 со стороны ИК-приемника и ИК-передатчика надо
типа hsdl1001 HSDL1100 hsdl3600
TFDU4100/TFDS4500/TFDT4500 и подобная херь

Для вас было бы проще/лучше MAX3120 либо аналогом
на схемотехнике MAX3120 из даташита не заморачиваясь с USART.

Не буду тратить время, но есть мнение, что у вас не получится.
натуральная блондинка
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»