Большой Воронежский Форум

Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел.
Вернуться   Большой Воронежский Форум » Компьютеры и все, что с ними связано » »Радиолюбитель
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио

Ответ
 
Опции темы
Старый 17.09.2010, 11:11   #541   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
Люди куда потерялись?
  Ответить с цитированием
Старый 17.09.2010, 11:55   #542   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Для работы с COM портом никаких препятствий нет.
1. Надо использовать аппаратный UART микроконтроллера.
2. К контроллеру прицепить микросхему преобразователя уровней RS232 (типа MAX232 и т.п.).
3. Подправить программу для работы с UART.
И уже можно будет работать с какой-нибудь терминалкой или написать свою программку для PC.
  Ответить с цитированием
Старый 20.09.2010, 07:41   #543   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, подскажите пожалуйста схематично как подцепить мах232 к нашему проекту.Какую лучше купить Микросхема MAX232CWE+ или Микросхема MAX232CPE или MAX232AEWE+.

Последний раз редактировалось Азат; 20.09.2010 в 08:25.
  Ответить с цитированием
Старый 20.09.2010, 10:00   #544   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, подскажите пожалуйста схематично как подцепить мах232 к нашему проекту.Какую лучше купить Микросхема MAX232CWE+ или Микросхема MAX232CPE или MAX232AEWE+.
Любую, главное чтобы ее корпус Вас устроил и правильные номиналы конденсаторов поставить.
Чтобы подключить MAX232 к PIC16F628A надо будет еще переназначить выводы для ЖКИ.
Миниатюры
Нажмите на изображение для увеличения
Название: MAX232.JPG
Просмотров: 79
Размер:	74.5 Кб
ID:	942486  
  Ответить с цитированием
Старый 20.09.2010, 10:16   #545   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Спасибо Петр сегодня куплю попробую спаять.И ЖКИ с RB1 и RB2 куда лучше переназначить.А программно думаю без Вас пока не разберусь.

Последний раз редактировалось Азат; 20.09.2010 в 10:53.
  Ответить с цитированием
Старый 20.09.2010, 11:10   #546   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
И ЖКИ с RB1 и RB2 куда лучше переназначить.
Думаю на RA7 и RA6. Но программу надо будет переписывать на MikroC PRO, в ней более гибко переназначаются выводы ЖКИ.
  Ответить с цитированием
Старый 20.09.2010, 11:18   #547   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Я в ней делаю MikroC Version: 8.2.0.0 только незнаю Pro она или нет.Кнопка уставка остается на прежнем месте? Если не трудно давайте сразу посмотрим и учтем подключение инфакрасного приемника к какой ноге.
Миниатюры
Нажмите на изображение для увеличения
Название: ik.GIF
Просмотров: 52
Размер:	8.0 Кб
ID:	942697  

Последний раз редактировалось Азат; 20.09.2010 в 11:39.
  Ответить с цитированием
Старый 20.09.2010, 12:08   #548   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, Я в ней делаю MikroC Version: 8.2.0.0 только незнаю Pro она или нет.Кнопка уставка остается на прежнем месте? Если не трудно давайте сразу посмотрим и учтем подключение инфакрасного приемника к какой ноге.
Нет 8.2 это не PRO, MikroC PRO 3.8 здесь http://www.mikroe.com/eng/products/v...c-pro-for-pic/ , MikroC PRO 4.0 Beta здесь http://www.mikroe.com/forum/viewtopic.php?f=85&t=26269. Кнопка пока на месте, ИК на любой оставшийся.
Только под Ваши потребности памяти может не хватить.
  Ответить с цитированием
Старый 20.09.2010, 13:21   #549   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Программу закачал.Тогда инфракрасный вешаем на RB6.А схема подключения ик приемлема?

Последний раз редактировалось Азат; 20.09.2010 в 15:19.
  Ответить с цитированием
Старый 21.09.2010, 06:56   #550   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Все купил спаял.Осталось разобраться с написанием программы.
  Ответить с цитированием
Старый 21.09.2010, 18:59   #551   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, Все купил спаял.Осталось разобраться с написанием программы.
1. Скачайте программку TCOM (ftp://ftp.radio.ru/pub/2003/05/tcom/tcom.exe) и проверьте, что MAX подключен правильно.
2. Откройте help MikroC, найдите в нем описание UART Library, там есть тестовая программа с эхом, поробуйте ее откомпилировать и запустить самостоятельно.
  Ответить с цитированием
Старый 22.09.2010, 11:23   #552   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Да все просто как никогда т.е я отправил а он мне в ответ прислал.
1) обмен данных на какой скорости я могу делать и от чего это зависит.От max 232? или просто при написание увеличить(там можно установить скорость соединения).
2)Еще вопрос Usart и Uart это одно и тоже?
3)Теперь давайте разбиремся с ПДУ.

Последний раз редактировалось Азат; 22.09.2010 в 11:48.
  Ответить с цитированием
Старый 22.09.2010, 12:26   #553   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, Да все просто как никогда т.е я отправил а он мне в ответ прислал.
1) обмен данных на какой скорости я могу делать и от чего это зависит.От max 232? или просто при написание увеличить(там можно установить скорость соединения).
2)Еще вопрос Usart и Uart это одно и тоже?
3)Теперь давайте разбиремся с ПДУ.
Скорости обмена имеют установившиеся значения.
1. СмОтрите доступные скорости в терминальной программе. Выбираете нужную.
2. В своей программе для PIC ( UART1_Init(........); ) ставите такую же. При компиляции компилятор скажет какой процент отклонения будет при данной тактовой частоте процессора и, вообще, можно ли работать на такой скорости обмена. Подробности смотрите в datasheet.
3. USART - возможна работа в синхронном и асинхронном режиме, UART - возможна работа в асинхроннном режиме. Все написано в datasheet. Библиотека MikroC работает в асинхронном режиме и этого обычно достаточно.
4. Название Вашего IR приемника?
5. Думаю Вам надо почитать про декодирование формата RC5, есть и другие, но думаю с этим проще.
  Ответить с цитированием
Старый 22.09.2010, 16:45   #554   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
название ir приемника ksm-lj4 37кГц
  Ответить с цитированием
Старый 23.09.2010, 06:55   #555   
Форумец
 
Сообщений: 3
Регистрация: 23.09.2010

ec-11 вне форума Не в сети
Здравствуйте!
Попробовал смоделировать проект термометра, который размещен немного раньше. В протеусе он у меня почему-то не работает. Помогите мне, пожалуйста, найти ошибку. Файлы загрузил.
Вложения
Тип файла: rar 1-W-2.rar (16.1 Кб, 50 просмотров)
  Ответить с цитированием
Старый 23.09.2010, 12:29   #556   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Прочитал про декодирование формата RC5.Ну пока в голове ясности как сделать нет,понял только как приходит что обозначает и сколько должны быть задержки в мс.
  Ответить с цитированием
Старый 24.09.2010, 11:45   #557   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от ec-11 Посмотреть сообщение
Здравствуйте!
Попробовал смоделировать проект термометра, который размещен немного раньше. В протеусе он у меня почему-то не работает. Помогите мне, пожалуйста, найти ошибку. Файлы загрузил.
Протеус не люблю и не пользуюсь. У меня стоит, на всякий случай, 7.4 SP3, но он не хочет открывать Ваш проект, говорит что проект в более новой версии. Если нужна помощь, откомпилите под мой протеус или киньте ссылку на Вашу версию, только с лекарством.
  Ответить с цитированием
Старый 24.09.2010, 11:53   #558   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, Прочитал про декодирование формата RC5.Ну пока в голове ясности как сделать нет,понял только как приходит что обозначает и сколько должны быть задержки в мс.
Тоже никогда с RC5 дела не имел и глубоко разбираться с ним не вижу нужды. В сети навлом примеров кода для декодирования RC5, формат старый и разжеванный, надо найти подходящий код и переделать, например, здесь http://www.microchip.su/showthread.p...E%E4%E5%F0+RC5
  Ответить с цитированием
Старый 25.09.2010, 06:20   #559   
Форумец
 
Сообщений: 3
Регистрация: 23.09.2010

ec-11 вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
Если нужна помощь, ... ... или киньте ссылку на Вашу версию, только с лекарством.
Ссылку отправил в Вашу личку.
  Ответить с цитированием
Старый 25.09.2010, 11:41   #560   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от ec-11 Посмотреть сообщение
Ссылку отправил в Вашу личку.
Благодарю за ссылку.
Не стал разбираться в чем была проблема у Вас, пересобрал проект, откомпилировал, работает.
Вложения
Тип файла: rar example.rar (54.0 Кб, 86 просмотров)
  Ответить с цитированием
Старый 26.09.2010, 06:11   #561   
Форумец
 
Сообщений: 3
Регистрация: 23.09.2010

ec-11 вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
Благодарю за ссылку.
Не стал разбираться в чем была проблема у Вас, пересобрал проект, откомпилировал, работает.
"Ура заработало".
Я думал проблема в Протеусе. А оказалось, была ошибка в Си-коде.
Буду разбирать Ваши примеры дальше.
Большое Вам спасибо.

Последний раз редактировалось ec-11; 27.09.2010 в 06:39.
  Ответить с цитированием
Старый 27.09.2010, 07:37   #562   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от ec-11 Посмотреть сообщение
"Ура заработало".
Я думал проблема в Протеусе. А оказалось, была ошибка в Си-коде.
Буду разбирать Ваши примеры дальше.
Большое Вам спасибо.
Не за что. Проблема была видимо не в коде, так как код почти не трогал (только подправил вывод минуса для отрицательных температур, для Вашей проблемы это не принципиально), а в настройках самого проекта - частота, биты конфигурации.
  Ответить с цитированием
Старый 28.09.2010, 12:05   #563   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Программа - декодер формата RC5. Нашел в сети, переделал, работает.
Выводит на ЖКИ принятый сигнал, разложенный в соответствии со стандартом RC5 (номер системы, номер команды, управляющий бит) + количество повторов.
Код:
/***********************************************************************************
*               ПРОГРАММА ДЕКОДИРОВАНИЯ ПРОТОКОЛА  IR PHILIPS RC5                  *
************************************************************************************
* Для приемника RC5 с инверсным выходом (= активный выходной уровень низкий,)      *
* например, TSOP1736. Выход приемника RC5 подключен к выводу внешнего прерывания   *
* INT(RB0).                                                                        *
*                                                                                  *
************************************************************************************
*Алгоритм :                                                                        *
*~~~~~~~~~                                                                         *
* При каждом изменении входного сигнала от приемника RC5 генерируется прерывание.  *
* В обработчике измеряется время между двумя следующими друг за другом изменениями.*
* На основании измеренной разницы делается вывод: одиночный или двойной импульс.   *
* Если измеренное время находится вне допустимого интервала принятый код считается *
* недостоверным и обработчик переводит себя в исходное состояние. В стейт-машине   *
* используется три состояния: IDLE (СВОБОДЕН), DECODING (ДЕКОДИРОВАНИЕ) и          *
* COMPLETED (ЗАВЕРШЕНО).                                                           *
************************************************************************************
* Hardware config : 16F628A @ 4Mhz  + TSOP1736 + LED + LCD                         *
* -------------------------------------------------------------------------------- *
* LED on RA0 (active when port high)                                               *
* TSOP-1736 : Output pin connected to RB0 (active when low)                        *
* LCD : WH1602 on PORTB : bits 7..4 = DB7...DB4/bit 3 = EN/bit 2 = RS/ GND = RW    *
* Note : when using a different Crystal speed, you will need to change prescaler   *
* in the main program and potentially the counters in the definition section       *
***********************************************************************************/

//-----------------------------------------------------------------------------
// Hardware specific settings
//-----------------------------------------------------------------------------
#define LED_On()      (RA0_bit=1)
#define LED_Off()     (RA0_bit=0)
#define LED_Toggle()  (RA0_bit=~RA0_bit)

#define IR_PIN        (RB0_bit)

//-----------------------------------------------------------------------------
// Predefined constants
//------------------------------------------------------------------------------
#define RC5_NR_Bits   14

// Всего должно быть захвачено 14 RC5_Bits (первый "стартбит" уже есть
// при первом прерывании)
// Формат принимаемых бит:
// - 2 стартовых бита (оба "1")
// - 1 управляющий бит (изменяется всякий раз когда отправлена новая команда)
// - 5 системных бит, старшим битом вперед (номер системы)
// - 6 командных бит, старшим битом вперед (номер команды)
// Биты распознаются между 2-мя фронтами сигнала RC5:
// - "длинный" означает: принятый бит отличается от предыдущего
// - два "коротких" означает: принятый бит эквивалентен предыдущему биту,
//   первый стартовый бит всегда равен "1"

#define RC5_TIME_BOUNDARY       83  // граница, ниже 83 = короткий, выше = длинный (0.75 bittime)
#define RC5_TIME_TOO_SHORT      28  // (0.25 bittime)
#define RC5_TIME_TOO_LONG      140  // (1.25 bittime)

// 1 bit time = 1778 uS
//    "короткий" время = 1/2 bittime = 889 uS, = timer value 55.5 (= 889/16)
//    "длинный"  время = 1 bittime = 1778 uS,  = timer value 111.12 (=1778/16)

//-----------------------------------------------------------------------------
// Global variables
//-----------------------------------------------------------------------------
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections

enum {
      RC5_IDLE,
      RC5_DECODING,
      RC5_COMPLETED
} RC5_state = RC5_IDLE ;

unsigned int   RC5_bits ;               // содержит принятые биты
unsigned char  RC5_bitCount ;           // счетчик обработанных битов
unsigned char  RC5_prevBit ;            // значение предыдущего бита
unsigned char  RC5_shortPulses ;        // число последовательных коротких бит

struct
{
    toggle   : 1 ;
    device   : 5 ;
    command  : 6 ;
    received : 1 ;
} IR ;

//-----------------------------------------------------------------------------
// Прототипы функций
//-----------------------------------------------------------------------------
void  Lcd_INT (int row, int col, int x, unsigned char len);

//------------------------------------------------------------------------------
// Обработчик прерывания
//------------------------------------------------------------------------------
void interrupt()
{
     unsigned char time;

     // прерывание по INT/RB0
     if (INTF_bit)
     {
       LED_Toggle () ;

       INTEDG_bit = 1-INTEDG_bit ; //переключение INTEDG (фронт-спад INT)
       INTF_bit = 0;

       time = TMR0;       // захват значения таймера
       TMR0 = 0;          // перезапуск таймера

       switch (RC5_state)
       {
           ////////// СВОБОДЕН. НИЧЕГО НЕ ПОЛУЧЕНО ////////////////////////////
           case RC5_IDLE :
                RC5_bits        = 1; // already 1 bit (with value "1") received
                RC5_bitCount    = 1;
                RC5_shortPulses = 0;
                RC5_prevBit     = 1;
                RC5_state       = RC5_DECODING;

                T0IF_bit = 0; // сброс флага переполнения TMR0
                T0IE_bit = 1; // разрешить прерывания TMR0
                break ;

           ////////// ЗАФИКСИРОВАННО ИЗМЕНЕНИЕ. НАЧИНАЕМ ОБРАБОТКУ БИТ /////////
           case RC5_DECODING :  // Execution time is about 52 uS at 4 Mhz CPU clock
                if ((time > RC5_TIME_TOO_SHORT) && (time < RC5_TIME_TOO_LONG))
                {
                     if (time < RC5_TIME_BOUNDARY) // обнаружен короткий импульс
                     {
                        RC5_shortPulses ++ ;
                        if (RC5_shortPulses == 2)
                        {
                           RC5_bits <<= 1;          // сохраняем принятый бит
                           RC5_bits |= RC5_PrevBit;
                           RC5_bitCount ++ ;
                           RC5_shortPulses = 0;
                        }
                     } else {    // обнаружен длинный импульс
                        RC5_prevBit = 1- RC5_prevBit;  // переключаем бит
                        RC5_bits <<= 1;                // сохраняем принятый бит
                        RC5_Bits |= RC5_PrevBit;
                        RC5_bitCount ++ ;
                        RC5_shortPulses = 0;
                     }

                     if (RC5_bitCount == RC5_NR_Bits)// если приняты все биты
                     {
                        RC5_state = RC5_COMPLETED;
                        INTEDG_bit = 0; // следующее прерывание по спаду
                        T0IE_bit = 0;   // отключить прерывания от TMR0
                     }
                } else { // что-то не правильно с временами
                     RC5_state = RC5_IDLE;  // начать сначала
                     INTEDG_bit = 0;        // следующее прерывание по спаду
                     T0IE_bit  = 0;         // отключить прерывания от TMR0
                }
                break ;

           /////////// ВСЕ БИТЫ ПРИНЯТЫ КОРРЕКТНО. Сохранение данных ///////////
           case RC5_COMPLETED :
                INTEDG_bit = 0; // следующее прерывание по спаду
                IR.toggle = ((RC5_bits>>11) & 0x01) ? 0 : 1 ;
                IR.device =  (RC5_bits>>6) & 0b00011111 ;
                IR.command=  (RC5_bits & 0b00111111) ;
                IR.received = 1 ;
                RC5_state = RC5_IDLE ;
                break ;

       } // end switch
     } // end INIF

     // Прерывание TMR0
     if (T0IF_bit)  // Переполнение TMR0, тайм-аут
     {
        if (RC5_state == RC5_DECODING) // что-то неправильно
        {
           RC5_state = RC5_IDLE;  // начать с начала
           LED_Off();
           INTEDG_bit = 0;        // следующее прерывание по спаду
           T0IE_bit  = 0;         // отключить прерывания TMR0
        }
     }

     T0IF_bit = 0; // всегда сбрасывать флаг переполнения TMR0

} // конец обработчика прерывания

//------------------------------------------------------------------------------
// MAIN PROGRAM
//------------------------------------------------------------------------------
void main ()
{
     unsigned int dev, cmd ;
     unsigned int repeat ;
     unsigned char last_toggle ;

     // инициализация стейт машины
     RC5_state = RC5_IDLE ;
 
    // инициализация регистров
    CMCON  = 0x07 ;         // отключить компараторы
    
    PORTA  = 0;
    TRISA = 0;
    
    PORTB = 0;
    TRISB = 0b00000001;     // PORTB D7-D1 = LCD  / D0 = IR приемник

    // Настройка TMR0  -->  Настройки зависят от кварца
    // Настройки TMR0  : Предделитель = 1:16 -  1 тик = 16 usec / 62.5 Khz
    OPTION_REG = 0x83;
    TMR0  = 0;  // предустановка TMR0

    T0IF_bit = 0;
    T0IE_bit = 0;      // отключить прерывания от TMR0

    // Enable external interrupt
    INTEDG_bit    = 0;            // начинаем со спада
    INTF_bit      = 0;            // сброс флага прерывания INT
    INTE_bit      = 1;            // разрешить прерывание INT
    GIE_bit       = 1;            // разрешить все прерывания

    // Инициализация LCD
    LCD_Init();
    Lcd_Cmd(_LCD_CURSOR_OFF);                  // Выключить курсор
    Lcd_Out (1, 1, "  Philips RC5") ;
    Lcd_Out (2, 1, "    Decoder  ") ;

    IR.received = 0 ;
    last_toggle = 2 ; // Невозможное значение

    // главный цикл программы

    while (1)
    {
          if (IR.received) {
             dev = IR.device ;
             cmd = IR.command;
             IR.received = 0 ;  // Команда обработана

             if (last_toggle == IR.toggle)
             {
                repeat ++ ;
             } 
             else
             {
                repeat = 0 ;
                last_toggle = IR.toggle;
             }

             LCD_Out (1, 1, "DEV CMD TOG CNT") ;
             LCD_INT (2, 1, dev, 3) ;
             LCD_Chr (2, 4, ' ');
             LCD_INT (2, 5, cmd, 3) ;
             LCD_Chr (2, 8, ' ');
             LCD_Out (2, 9, IR.toggle ? " T  ":"    ") ;
             LCD_INT (2, 13, repeat, 3) ;
          }
          Delay_ms (250) ;
    }
} // end main

//------------------------------------------------------------------------------
// ДОПОЛНИТЕЛЬНЫЕ ПОДПРОГРАММЫ
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
void  Lcd_INT (int row, int col, int x, unsigned char size)
{
      static char txt[7] ;
      int i ;

      IntToStr (x, txt) ;
      for (i=0; i<7; i++) if (txt[i] == ' ') txt[i] = '0' ;
      Lcd_Out(row, col, txt+(6-size)) ;
}
  Ответить с цитированием
Старый 29.09.2010, 12:52   #564   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Если не трудно нарисуйте схему подключения
  Ответить с цитированием
Старый 30.09.2010, 09:18   #565   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, Если не трудно нарисуйте схему подключения
Так там по коду все расписано. Только у меня IR приемник неизвестного происхождения.
Миниатюры
Нажмите на изображение для увеличения
Название: RC5_пример.JPG
Просмотров: 114
Размер:	105.5 Кб
ID:	958157  
  Ответить с цитированием
Старый 30.09.2010, 13:15   #566   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
Уважаемый petrd, Скомпилировал проект Микро Си Про что то не вкл.Проект прикрепил.Теперь как всегда вопрос на RA2 цепляем через транзистор реле,где в теле программы правильно указать что если код(т.е команду с пульта 14 бит) вкл реле и выкл.
Вложения
Тип файла: rar Pic.rar (37.2 Кб, 67 просмотров)

Последний раз редактировалось Азат; 30.09.2010 в 15:53.
  Ответить с цитированием
Старый 30.09.2010, 22:25   #567   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
Уважаемый petrd, Скомпилировал проект Микро Си Про что то не вкл.Проект прикрепил.Теперь как всегда вопрос на RA2 цепляем через транзистор реле,где в теле программы правильно указать что если код(т.е команду с пульта 14 бит) вкл реле и выкл.
1. У Вас в слове конфигурации установлен HS (внешний кварц), а кварца-то нет на схеме, она работает от внутреннего генератора INTOSC (4 МГц).
2. Признаком безошибочного приема является переменная IR.received == 1, значит, когда это так, то надо смотреть, какая команда пришла, команда содержится в переменной IR.command :
Код:
if(IR.received == 1) {
   switch(IR.command)
              {
               case 1: RA2_bit = ~RA2_bit; break; // на ПДУ нажата кнопка "1", переключить RA2
               case 2: RA3_bit = ~RA3_bit; break; // на ПДУ нажата кнопка "2", переключить RA3
       ......................
              }
  IR.received = 0;
}
  Ответить с цитированием
Старый 01.10.2010, 07:29   #568   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, А в чем отличие INTOSK CLOKOUT и INTOSK I/O какой мне нужно поставить
  Ответить с цитированием
Старый 01.10.2010, 08:03   #569   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Азат Посмотреть сообщение
petrd, А в чем отличие INTOSK CLOKOUT и INTOSK I/O какой мне нужно поставить
Читаем datasheet!
INTOSCK CLKOUT - сигнал внутреннего генератора деленный на 4 выводится наружу через RA6, вывод RA7 - вход/выход.
INTOSCK I/O - сигнал внутреннего генератора наружу не выводится, выводы RA6/RA7 используются как входы/выходы.
  Ответить с цитированием
Старый 01.10.2010, 08:44   #570   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
petrd, Получается мне нужно поставить второе?
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind