Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 15.11.2017, 10:24   #1
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 40
Сообщений: 139
Вес репутации: 100/12
Руслан will become famous soon enoughРуслан will become famous soon enough
По умолчанию Прерывания по USART

Всем привет!
Пытаюсь разобраться с прерываниями при работе с USART в PIC18F4620.
Плату использовал демо для ICD2.
Подключился к COM1, через терминальную программу из компа отправляю на USART данные, не важно
какие - главное проверить что что-то пришло.
Предварительно проверил без прерываний что что-то приходит - зажигаю светодиод если что-то пришло
- это работает.
Затем уже попробовал зайдет ли в функцию обработки прерываний void interrupt isr(void) тоже через светодиоды т.е. если зашло в функцию зажигаю светодиод LATB2, а если это прерывание от USART то зажигаю LATB1. Но безуспешно - светодиоды НЕ загорелись.

При включении начинает работать функция Test_USART_Int(), которая вращается в цикле.

Приведу код. Подскажите, пожалуйста, что я не правильно делаю, с прерываниями до этого не работал.


Код:
void InitUsart()
{ //в данной ф-ции и инициализация PORTC

    //** инициализация PORTC (часть 1 из 2-х частей)    
    PORTC = 0; //инициализация с очисткой выходной защёлки данных
    LATC = 0;  //альтернативный метод очистки выходной защёлки данных
    //***END инициализация PORTC (часть 1 из 2-х частей)
    //--------------------------------------------------------


    SPBRG = 64;             //9600 bod                

    //**Регистр управления и статуса передатчика TXSTA
                                
    CSRC = 0; //внешний тактовый сигнал с входа CK
    TX9  = 0;     //8-разрядная передача
    TXEN = 1; //передача разрешена
    SYNC = 0; //асинхронный режим USART    
    BRGH = 0; //низкоскоростной режим
    TRMT = 1; //сдвиговый регистр передатчика TSR пуст
    TX9D = 0; //9-й бит передаваемых данных (может использоваться для проверки чётности)

    //***END Регистр управления и статуса передатчика TXSTA
    //...............................................................
    //** Регистр управления и статуса приёмника RCSTA

    SPEN = 1; //модуль USART включен (выводы RX/DT, TX/CK подключены к USART)
    RX9  = 0;     //8-разрядный приём
    SREN = 0; //не имеет значения для асинхронного режима USART        
    CREN = 1; //приём разрешён
    ADDEN = 0;//детектирование адреса запрещено. Принимаются все байты, 
                         //девятый бит может использоваться для проверки чётности
    FERR = 0; //флаг: ошибки кадра не было
    OERR = 0; //флаг: ошибки переполнения не было
    RX9D = 0; //9-й бит принятых данных (может использоваться для проверки чётности)

    //***END Регистр управления и статуса приёмника RCSTA


    //--------------------------------------------------
    //** инициализация PORTC (часть 2 из 2-х частей)

    TRISC0 = 1; //вход для кварца TMR1
    TRISC1 = 1; //вход для кварца TMR1

    TRISC2 = 0; //OUTPUT;
    TRISC3 = 0; //OUTPUT;
    TRISC4 = 0; //OUTPUT;
    TRISC5 = 0; //OUTPUT;

    TRISC6 = 0; //OUTPUT USART (TX);
    TRISC7 = 1; //INPUT USART (RX);


    //***END инициализация PORTC (часть 2 из 2-х частей)
    //--------------------------------------------------------
    LATC4 = 0; 

    //** for interrupt
    INTCON=0b10000000;  //  Разрешены прерывания GIE=1 глобальное разрешение прерываний

    GIE=1; // на всяк случай продублирую
    RCIE=1;             // Разрешить прерывания от приёмника USART
    //***
    //---------------------------------------------------------


}//InitUsart

//////////////////////////////////////////////////////////////////

void interrupt isr(void)
{
    unsigned char tmp;

    LATB2 = 1;

    if(RCIF)
    {
        LATB1 = 1;


        //** проверка и сброс флагов ошибок USART
        if(FERR || OERR)
        {
            if(FERR)
            {
                tmp = RCREG;
            }
    
            if(OERR)
            {
                 CREN = 0;      
                 CREN = 1;      
            }
        }//if(FERR || OERR)
        //*** проверка и сброс флагов ошибок USART

        uc_byte_USART = RCREG;//? думать вроде надо тут 
    }

//    GIE=0;
//    RCIE=0;          

}

///////////////////////////////////////////////////////////////////

int Test_USART_Int()
{

    TRISB = 0b00000000; //Set RB<7:0> as output
    
    LATB3 = 1; 
    LATB2 = 0; 
    LATB1 = 0; 
    LATB0 = 0; 

/**************************************************/


    GIE=1;
    RCIE=1;             // Разрешить прерывания от приёмника USART
    uc_byte_USART = 0;


    while(1)
    {
        if (uc_byte_USART == 0)
            LATB0 = 0; 
        else
            LATB0 = 1; 
    }

    while(1) 
        continue;    

    return 0;
}
Руслан вне форума   Ответить с цитированием
Старый 15.11.2017, 13:47   #2
tsb58
Senior Member
 
Аватар для tsb58
 
Регистрация: 04.11.2008
Адрес: Харьков
Сообщений: 343
Вес репутации: 889/45
tsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to behold
По умолчанию Re: Прерывания по USART

Главное, чего не хватает в Вашем коде для прерываний от USART, - должен быть еще включен бит разрешения "периферийных" прерываний
Код:
PEIE = 1;
И еще, разрешения прерываний, особенно GIE, обычно не включают в функциях настройки отдельных периферийных модулей. Это нужно делать в "главной" программе.
tsb58 вне форума   Ответить с цитированием
Старый 15.11.2017, 15:51   #3
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 40
Сообщений: 139
Вес репутации: 100/12
Руслан will become famous soon enoughРуслан will become famous soon enough
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от tsb58 Посмотреть сообщение
Главное, чего не хватает в Вашем коде для прерываний от USART, - должен быть еще включен бит разрешения "периферийных" прерываний
Код:
PEIE = 1;
спасибо, вечером попробую


Цитата:
Сообщение от tsb58 Посмотреть сообщение
И еще, разрешения прерываний, особенно GIE, обычно не включают в функциях настройки отдельных периферийных модулей. Это нужно делать в "главной" программе.
т.е. GIE = 1 включаю при начальной инициализации программы.
А потом, если мне нужно НЕ обрабатывать прерывания какое-то время, то я его выключаю в самой проге и потом в ней же включаю? Это делать с GIE и с PEIE или одного из них достаточно?
Руслан вне форума   Ответить с цитированием
Старый 15.11.2017, 16:27   #4
tsb58
Senior Member
 
Аватар для tsb58
 
Регистрация: 04.11.2008
Адрес: Харьков
Сообщений: 343
Вес репутации: 889/45
tsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to beholdtsb58 is a splendid one to behold
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от Руслан Посмотреть сообщение
...если мне нужно НЕ обрабатывать прерывания какое-то время, то я его выключаю в самой проге и потом в ней же включаю? Это делать с GIE и с PEIE или одного из них достаточно?
Зависит от задачи. Если в программе разрешено несколько источников прерываний, то бывает нужно на время отключить прерывание от какого-то одного источника. В этом случае отключаем бит разрешения этого конкретного прерывания (например, RCIE=0). Но в этом случае в обработчике прерываний нужно анализировать не только флаг прерывания (например, RCIF), а и его разрешение.
В других случаях может быть какой то критичный участок программы, когда ВСЕ прерывания должны быть запрещены. В этом случае снимают общее (глобальное) разрешение прерываний (GIE = 0).
Бит разрешения "периферийных" прерываний PEIE "отвечает" за прерывания от нескольких источников. Каких именно - нужно смотреть в даташит конкретного микроконтроллера.
tsb58 вне форума   Ответить с цитированием
Старый 16.11.2017, 00:59   #5
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 40
Сообщений: 139
Вес репутации: 100/12
Руслан will become famous soon enoughРуслан will become famous soon enough
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от tsb58 Посмотреть сообщение
Главное, чего не хватает в Вашем коде для прерываний от USART, - должен быть еще включен бит разрешения "периферийных" прерываний
Код:
PEIE = 1;
так сделал - заработало, спасибо!

Еще посоветовали мне глобальные переменные-флажки, которые я буду использовать в основной программе и в прерываниях надо объявлять через volatile. Почитал про это в инете - не такой это простой вопрос как пишут - кто-то их использовал на практике? Подскажите, пожалуйста, какая необходимость в этом операторе реально.

Например, в приведенной выше коде моей программы надо бы глобальную переменную uc_byte_USART объявить через этот volatile:
volatile unsigned char uc_byte_USART;
хотя как я вижу - и без него работает...

Последний раз редактировалось Руслан; 16.11.2017 в 01:05.
Руслан вне форума   Ответить с цитированием
Старый 16.11.2017, 03:49   #6
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: M.O.
Возраст: 58
Сообщений: 2,128
Вес репутации: 2724/86
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Прерывания по USART

С volatile вопрос как раз не сложный. Компилятор в отсутствии этого квалификатора полагает, что переменная и ее копия (значение считанное из этой переменной в РОН, аккумулятор или другую переменную) - это одно и то же. Проблема может возникнуть при оптимизации и/или при обработке переменных с разрядностью отличной от разрядности контроллера. Например, компилятор побайтно читает переменную в РОН для двухбайтного сложения. Если эта переменная модифицируется в прерывании, то с определенной вероятностью прерывание может возникнуть МЕЖДУ чтениями переменной в основном коде. Таким образом, один байт будет считан до прерывания, а другой после. И в результате получаем совершенно другое значение переменной, например при переносе из младшего байта в старший. Тоже самое может произойти при побитном анализе переменной.
Таким образом, отсутствие квалификатора МОЖЕТ привести к трудно определяемой ошибке. А может и не привести. Все зависит от вероятности возникновения прерывания во время использования переменной.
Марк вне форума   Ответить с цитированием
Старый 16.11.2017, 07:59   #7
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,520
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Прерывания по USART

Марк
volatile никак не спасает от проблем, связанных с модификацией переменной в другом потоке выполнения. что с volatile, что без него переменная будет считываться кусками, без намека на анализ того, что она была модифицирована где-то там еще.
besogon вне форума   Ответить с цитированием
Старый 16.11.2017, 10:53   #8
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 35
Сообщений: 1,115
Вес репутации: 3551/75
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от Руслан Посмотреть сообщение
Почитал про это в инете - не такой это простой вопрос как пишут
http://www.pic24.ru/doku.php/osa/art...e_for_chainiks
После статьи Tester'a вопросов возникать не должно.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 16.11.2017, 11:37   #9
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,520
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Прерывания по USART

yeskela
вопросы наверное будут, однако они будут касаться не volatile, а того, как в результате решать те или иные вещи.
besogon вне форума   Ответить с цитированием
Старый 16.11.2017, 16:54   #10
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 40
Сообщений: 139
Вес репутации: 100/12
Руслан will become famous soon enoughРуслан will become famous soon enough
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от yeskela Посмотреть сообщение
http://www.pic24.ru/doku.php/osa/art...e_for_chainiks
После статьи Tester'a вопросов возникать не должно.
еще до того как написать на форум читаю я эту статью, читаю, читаю...
как раз в ней про неоднозначности и пишут, и вот в форуме тоже написали, что могут появиться трудно определимые ошибки...
а мне и без этого алгоритм не простой, а тут еще этот volatile - когда прибор будет стоять у заказчика и появятся неизвестные проблемы... которые то ли от volatileто ли от других ошибок. Нет однозначности.
Напрашивается отключить оптимизацию компилятора...
Руслан вне форума   Ответить с цитированием
Старый 16.11.2017, 17:37   #11
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 35
Сообщений: 1,115
Вес репутации: 3551/75
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от Руслан Посмотреть сообщение
еще до того как написать на форум читаю я эту статью, читаю, читаю...Нет однозначности.
У Вас в примере как раз однозначность есть. Переменная uc_byte_USART модифицируется в прерывании, используется в фоне. Значит должна быть объявлена volatile.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 19.11.2017, 13:17   #12
al.kl
Senior Member
 
Регистрация: 11.10.2011
Возраст: 22
Сообщений: 235
Вес репутации: 750/32
al.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to behold
Отправить сообщение для al.kl с помощью ICQ
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от yeskela Посмотреть сообщение
Переменная uc_byte_USART модифицируется в прерывании, используется в фоне. Значит должна быть объявлена volatile.
И чем обусловлена такая обязанность ?
Проблему с атомарным доступом, как уже выше сказали, volatile не решает. Если речь идёт об оптимизации, то ещё не факт, что компилятор вырежет эту переменную.
Зачем давать такие советы ?
Если вы ставите volatile "в каждую дырку", то не нужно советовать это делать другим. Он может и навредить при одновременном доступе к переменной разными потоками. Например, его присутствие, обычный инкремент может развернуться в операцию ЧМЗ, вместо обычной одиночной команды инкремента. О последствиях, думаю, не нужно рассказывать ?

Последний раз редактировалось al.kl; 19.11.2017 в 13:37.
al.kl вне форума   Ответить с цитированием
Старый 19.11.2017, 14:11   #13
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,520
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Прерывания по USART

al.kl
в 18пиках нет возможности для нормальной организации атомарного доступа к памяти как такового.

максимум, что возможно, запрещать на время доступа прерывания.
besogon вне форума   Ответить с цитированием
Старый 20.11.2017, 09:54   #14
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 35
Сообщений: 1,115
Вес репутации: 3551/75
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от al.kl Посмотреть сообщение
И чем обусловлена такая обязанность ?
Проблему с атомарным доступом, как уже выше сказали, volatile не решает.
Напомните, пожалуйста, где я говорил про атомарный доступ. Естественно не решает.

Цитата:
Сообщение от al.kl Посмотреть сообщение
Если вы ставите volatile "в каждую дырку", то не нужно советовать это делать другим. Он может и навредить при одновременном доступе к переменной разными потоками.
Давайте без личностей. Мы обсуждаем конкретный случай. однобайтная переменная модифицируется в прерывании, используется в фоне. В main uc_byte_USART устанавливается в ноль и далее бесконечно проверяется на ноль. По графу вызовов обработчик прерывания и main не связаны. Почему компилятор с включеннной оптимизацией должен эту проверку делать, а не полагать, что uc_byte_USART как был установлен в 0, так и остался?
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 20.11.2017, 10:17   #15
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,520
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Прерывания по USART

yeskela
по моему опыту, уверен что gcc и sdcc со включенной оптимизацией вырежут циклическую проверку uc_byte_USART переменной, если ее не объявить volatile.
это будет абсолютно нормальное, правильное поведение компилятора исходя из моих представлений об оптимизациях.
besogon вне форума   Ответить с цитированием
Старый 20.11.2017, 10:33   #16
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 35
Сообщений: 1,115
Вес репутации: 3551/75
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от besogon Посмотреть сообщение
yeskela
по моему опыту, уверен что gcc и sdcc со включенной оптимизацией вырежут циклическую проверку uc_byte_USART переменной, если ее не объявить volatile.
это будет абсолютно нормальное, правильное поведение компилятора исходя из моих представлений об оптимизациях.
И я о том-же.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 24.11.2017, 09:42   #17
al.kl
Senior Member
 
Регистрация: 11.10.2011
Возраст: 22
Сообщений: 235
Вес репутации: 750/32
al.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to behold
Отправить сообщение для al.kl с помощью ICQ
По умолчанию Re: Прерывания по USART

Цитата:
Сообщение от yeskela Посмотреть сообщение
Напомните, пожалуйста, где я говорил про атомарный доступ. Естественно не решает.

Давайте без личностей. Мы обсуждаем конкретный случай. однобайтная переменная модифицируется в прерывании, используется в фоне. В main uc_byte_USART устанавливается в ноль и далее бесконечно проверяется на ноль. По графу вызовов обработчик прерывания и main не связаны. Почему компилятор с включеннной оптимизацией должен эту проверку делать, а не полагать, что uc_byte_USART как был установлен в 0, так и остался?
Какие личности, уважаемый ?
В КОНКРЕТНОМ СЛУЧАЕ, который тут обсуждается, имеет место быть проблема с атомарным доступом. И Ваш совет, сударь, относительно volatile, в КОНКРЕТНОМ СЛУЧАЕ - ТС'у, как собаке пятая нога.
Зачем давать такие советы, которые, по Вашим же словам, В КОНКРЕТНОМ СЛУЧАЕ, проблему не решают ?
Просто глаз режут подобные посты. Абы что написать, заумное...
al.kl вне форума   Ответить с цитированием
Старый 24.11.2017, 09:50   #18
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,520
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Прерывания по USART

al.kl
в pic16 чтение байта, если переменная названная byte, имеет разрядность действительно байт, читается атомарно.
Код:
        if (uc_byte_USART == 0)
            LATB0 = 0; 
        else
            LATB0 = 1;
и в этом случае без volatile этот кусок будет вырезан при оптимизации. наверное речь шла об этом, хотя я уже потерял нить дискуссии.
besogon вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен по USART (16f876a) aleXXX Продукция MICROCHIP 2 31.07.2008 09:55
PIC18F4520 проблемы с UART-ом AlHakim Продукция MICROCHIP 4 30.10.2007 07:31
Передача по радиоканалу с помощью USART Валерий Продукция MICROCHIP 14 29.03.2007 19:13
Вопрос по PIC16F916 USART soecho Продукция MICROCHIP 10 27.02.2007 11:06


Часовой пояс GMT +3, время: 23:57.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot